我有一個應用程序需要很長時間才能完成。我使用後臺工作來運行這些方法並保持我的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