我正在研究多线程Silverlight应用程序.
该应用程序有两个线程:Main/UI和后台工作线程.
UI线程应该能够杀死后台线程,如下所示:
private Thread executionThread; .... executionThread = new Thread(ExecuteStart); executionThread.Start(); .... executionThread.Abort(); // when the user clicks "Stop"
最后一行引发了一个异常:
MethodAccessException:尝试访问方法失败:System.Threading.Thread.Abort()
任何的想法?为什么我不能在Silverlight中中止一个帖子?
谢谢,纳伊米
您可能需要考虑使用BackgroundWorker类,而不是手动为此目的创建线程.
此类具有内置功能,可在WorkerSupportsCancellation = true时取消异步操作.
有关如何在Silverlight中使用BackgroundWorker 的完整示例,请查看MSDN上的这篇文章.