У меня есть программа, которая постоянно работает.Pausing BackgroundWorker от другого метода
Когда я начинаю программу, у меня есть BackgroundWorker (InitialStart.cs):
BackgroundWorker recordingSyncWorker = new BackgroundWorker();
recordingSyncWorker.DoWork += new DoWorkEventHandler(RecordingSyncCheck);
recordingSyncWorker.WorkerSupportsCancellation = false;
recordingSyncWorker.WorkerReportsProgress = false;
recordingSyncWorker.RunWorkerAsync();
void RecordingSyncCheck(object sender, DoWorkEventArgs e)
{
cHandler ch = new cHandler();
Timer theTimer;
int seconds = 1;
if (taskSeconds != null && taskSeconds != "")
seconds = Convert.ToInt32(taskSeconds);
int milliseconds = seconds * 1000;
theTimer = new Timer(10000);
theTimer.Elapsed += new ElapsedEventHandler(ch.SyncMethod);
theTimer.Interval = milliseconds;
theTimer.Enabled = true;
}
И у меня есть два метода в другом классе (cHandler.cs):
SyncMethod(object source, System.Timers.ElapsedEventArgs e)
{
// random code
}
private string SDCardCheck(object whatever)
{
//more code
}
SDCardCheck получает вызванный через WCF, так что это похоже на другой экземпляр cHandler.cs. Есть ли способ приостановить работу BackgroundWorker при вызове SDCardCheck?
Стоит отметить, что для этого «Таймер» должен иметь более широкий охват, чем только метод. –
Я отключил BackgroundWorker и просто запускал его непосредственно из потока пользовательского интерфейса. Начальные тесты кажутся хорошими. Я думаю, что BackgroundWorker был остатком предыдущей версии, так как метод Syncing намного более упорядочен. – javisrk