我有一个应用程序需要很长时间才能完成。我使用后台工作来运行这些方法并保持我的UI响应。我的方法看起来像我应该将Backgroundworker传递给方法
public void DoSomething()
{
while(HaveMoreWork)
{
// do work
}
}
现在我想的UI能够取消在任何时间,所以我改变了我的方法把一个BackgroundWorker,像这样
public void DoSomething(Backgroundworker worker)
{
while(HaveMoreWork && !worker.CancelationPending)
{
// do work
}
}
我的问题是,是有更好的方法来做到这一点。看起来像传递BackgroundWoker作为所有这些方法的参数有点混乱。对此最佳做法是什么?
他们必须知道工作者,无论是作为参数还是全局变量。这看起来不错。 – 2012-07-11 15:34:14