Проблема с backgroundWorker

Рейтинг: 0Ответов: 1Опубликовано: 04.02.2015

Добрый день.

Возникла проблема с backgroundWorker, то есть он на 60% работает и на 40% не работает, причем все происходит рандомно, к примеру, при 3 попытках запуска работает, а при следующих 4 отключается на первом цикле. В чем может быть проблема?

private void backgroundWorker1_DoWork_1(object sender, DoWorkEventArgs e)
    {
        bool BeginCycle = true;
        while (BeginCycle != false)
        {
            GetSensorData();
            GraphMemory();
            if (backgroundWorker1.CancellationPending)
            {
                BeginCycle = false;
                e.Cancel = true;
                break;
            }
            else if (!backgroundWorker1.CancellationPending)
            {
                BeginCycle = true;
                if (VariableVideoController.AdapterCompatibility[Form1.BufIndex] != MainClass.GetSensor.Vendor)
                {
                    this.Invoke(new Action(() => textBox17.Text = "N/A"));
                }
                try
                {
                if ( VariableVideoController.AdapterCompatibility[Form1.BufIndex] == MainClass.GetSensor.Vendor)
                {
                        this.Invoke(new Action(() => textBox17.Text = MainClass.GetSensor.GetGPUCore.ToString() + " MHz"));
                }
                }
                    catch (Exception Error)
                    {
                        return;
                    }
            }
        }
    }

        private void FormVideocardInfo_FormClosed(object sender, FormClosedEventArgs e)
    {
        backgroundWorker1.CancelAsync();
    }

Ответы

▲ 1
if (backgroundWorker1.CancellationPending)
            {
                BeginCycle = false;
                e.Cancel = true;
                this.Invoke(new Action(() => chart1.Dispose()));
                return;
            }