在我的程序中,我有一些非常长的任务,应该可以从GUI(WPF)中断。有关线程架构的任何建议吗?
此任务看起来像是具有此类代码的N线程:
public void DoLongOperation()
{
for(int i=beginPoint; i<endPoint; i++)
{
doSomethingStupid(dataArray[i]);
}
}
答案 0 :(得分:10)
看看BackgroundWorker;具体而言,WorkerSupportsCancellation。有一个例子,你想在WPF Multithreading: Using the BackgroundWorker and Reporting the Progress to the UI做什么。
答案 1 :(得分:0)
。线程上的.Interrupt()不是好方法,唯一好办法就是你在答案中说的bool。
答案 2 :(得分:-1)
好吧,您可以通过检查bool来检查是否应该停止,每次循环迭代。或者只是.interrupt()它,并处理异常(如果它可以随时被杀死)。