所以我有我的Winform应用程序中的2个backgroundworkers,只是叫他们b1和b2。这是我的代码:从另一个backgroundworker c停止backgroundworker#
private void b1_DoWork(object sender, DoWorkEventArgs e)
{
b2.RunWorkerAsync();
Thread.Sleep(3000);
b2.CancelAsync();
}
private void b2_DoWork(object sender, DoWorkEventArgs e)
{
Global.GetPdfThumbnail(Global.inPDF, Global.outImage);
}
我真正想要的是运行b2线程并使b1线程睡眠3秒,然后停止b2线程。
问题出在b2.CancelAsync();
指令之后,b2 isBusy
依然如此。
请帮忙!
对不起我的英语!
这是所有异步所以需要一段时间的系统停止线程。这就解释了为什么IsBusy在CancelAsync后立即成立。你可以等待IsBusy成为真实的,但不清楚你想达到什么。开始一项任务似乎毫无意义,让它运行3秒,然后放弃已完成的任务。请详细说明你的首要目标。 –