WPF / C#取消DoWork之外的BackgroundWorker调用
||
我有一个
BackgroundWorker
DoWork
函数,如下所示
private void WorkerGetFeedData(object sender, DoWorkEventArgs args)
{
_feed.FetchUserData(_userNameCollection);
}
FetchUserData
是同一解决方案中另一个项目的另一个类(其对象是is4ѭ)中的函数。数据提取过程需要花费大量时间,我希望用户能够在必要时取消该过程。如何将取消操作从用户传递到其他地方的函数调用,然后将其停止?
没有找到相关结果
已邀请:
2 个回复
车料
方法。这里是示例的更多信息:MSDN 为了更准确地解决您的问题,请将工作人员交给
。它是发送者参数。然后在
功能中,可以检查标志
是否已设置并完成方法。
和WorkerGetFeedData方法:
抽法
这种方法的问题是-它使用Thread.Abort()-无论执行什么操作都会中断线程。这可能导致手柄打开,内存泄漏等。因此,尽管有帮助,但使用起来非常不明智。 伊恩·格里菲斯(Ian Griffiths)认为(强制)取消线程的另一种方法是在其单独的进程中运行它:http://www.interact-sw.co.uk/iangblog/2004/11/12/cancellation可以在不影响您进程内部状态的情况下杀死它。