我正在用C#开发一个应用程序(vs 2015),我遇到了一个问题。
我正在运行一个接收连续图像流的backgroundWorker。我需要在单击按钮时停止或重新启动此流,但我不知道如何更改backgroundWorker的内部状态。我可以将初始参数传递给backgroundWorker,但是如何在异步运行backgroundWorker之后更改其中一个内部参数?
非常感谢你的帮助。 史蒂夫
答案 0 :(得分:0)
您需要自己跟踪重启。例如,有一个布尔。
private bool _restart = false;
private void button1_Click(object sender, EventArgs e)
{
_restart = true;
_backgroundWorker.CancelAsync();
}
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
if (_backgroundWorker.CancellationPending)
{
return;
}
// do work
}
private void backgroundWorker_WorkComplete(object sender, eventargs e) //no ide to hand not sure on name/args
{
if (_restart)
{
_restart = false;
_backgroundWorker.RunWorkerAsync();
}
}