2014-10-30 2 views
0

У меня есть программа, которая постоянно работает.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?

ответ

3

Не используйте BackgroundWorker, чтобы запустить таймер. Запуск таймера - это не длительная работа; это можно сделать непосредственно из потока пользовательского интерфейса.

Ваш другой способ может отключить таймер, чтобы остановить его от стрельбы, а затем снова включить его, чтобы он продолжал стрелять, чтобы эффективно приостановить его выполнение.

+0

Стоит отметить, что для этого «Таймер» должен иметь более широкий охват, чем только метод. –

+0

Я отключил BackgroundWorker и просто запускал его непосредственно из потока пользовательского интерфейса. Начальные тесты кажутся хорошими. Я думаю, что BackgroundWorker был остатком предыдущей версии, так как метод Syncing намного более упорядочен. – javisrk

Смежные вопросы