backgroundwoker里的CancelAsync方法好像是停止后台操作的.
如何让停止之后的 backgroundwoker 继续运行?或者是用backgroundwoker实现下列功能
例如我做一个下载 按下暂停之后 后台停止,按下继续之后 后台继续下载.

解决方案 »

  1.   

    BackgroundWorker的实例CancelAsync之后,检查IsBusy是不是变成false。如果已经是false,调用该实例的RunWorkerAsync就可以重新启动。对于你要做暂停和继续,建议暂停时保存下载状态,CancelAsync关闭Worker,而继续时,重新启动Worker,并且利用上次保存的下载状态继续下载。
      

  2.   

    BackgroundWorker的实例CancelAsync之后,检查IsBusy是不是变成false。如何才能变成false ? 调用之后没变化,依然还是true...
      

  3.   


    backgroundWorker1.CancelAsync();
    while (backgroundWorker1.IsBusy)
    {
    Thread.Sleep(1000);
    }
    出了循环的时候IsBusy就是false了。另外你的DoWork代码中必须有检查CancellationPending属性的代码,检查到这个属性为true就return。否则,你的DoWork不会因为后面CancelAsync的调用退出,那么Worker也就停不下来了。