Можете ли вы ссылаться на хороший пример использования BackgroundWorker, не помещая его в форму как компонент?

Я помню, что много лет назад (в 2005 году) я использовал BackgroundWorker в своем коде, не используя для этого визуальный компонент, но я не помню, как (к сожалению, я очень забывчивый и забыл все очень скоро после того, как я остановился используй это). Возможно, я расширяю класс BackgroundWorker. Можете ли вы ссылаться на хороший пример использования BackgroundWorker таким образом?

Ответ 1

В этой статье объясняется все, что вам нужно.

Ниже приведены минимальные шаги при использовании BackgroundWorker:

  • Создайте флажок BackgroundWorker и обработайте событие DoWork.
  • Вызов RunWorkerAsync, необязательно с аргументом объекта.

Затем он устанавливает его в движение. Любой аргумент, переданный RunWorkerAsync, будет перенаправлен обработчику событий DoWorks через аргумент Argument. Вот пример:

class Program
{
  static BackgroundWorker _bw = new BackgroundWorker();

  static void Main()
  {
    _bw.DoWork += bw_DoWork;
    _bw.RunWorkerAsync ("Message to worker");
    Console.ReadLine();
  }

  static void bw_DoWork (object sender, DoWorkEventArgs e)
  {
    // This is called on the worker thread
    Console.WriteLine (e.Argument);        // writes "Message to worker"
    // Perform time-consuming task...
  }
}