Я помню, что много лет назад (в 2005 году) я использовал BackgroundWorker в своем коде, не используя для этого визуальный компонент, но я не помню, как (к сожалению, я очень забывчивый и забыл все очень скоро после того, как я остановился используй это). Возможно, я расширяю класс 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...
}
}