Pausa / Reanudar bucle en Trabajador en segundo plano
Tengo un bucle en Trabajador en segundo plano en una aplicación Winform.
Acabo de usar estaCódig pero no se reanudará después de la pausa.
En la clase principal utilizo este
System.Threading.ManualResetEvent _busy = new System.Threading.ManualResetEvent(false);
Entonces en My Start Click escribí esto:
if (!backgroundWorker1.IsBusy)
{
MessageBox.Show("Not Busy"); //Just For Debugg
_busy.Set();
Start_Back.Text = "Pause";
backgroundWorker1.RunWorkerAsync(tempCicle);
}
else
{
_busy.Reset();
Start_Back.Text = "Resume";
}
btnStop.Enabled = true;
Entonces en backgroundworker doWork escribí esto:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
m_addTab addTabsInvoke = addTabUrl2;
Invoke(addTabsInvoke, "http://www.google.com");
foreach (something)
{
_busy.WaitOne();
if (backgroundWorker1.CancellationPending)
{
return;
}
if (tabs.InvokeRequired)
{
......
......
No puedo entender por qué la pausa funciona mientras que el currículum no funciona. ¿Me equivoqué con algo?