Каков наилучший способ реализации C # BackgroundWorker в Delphi? - PullRequest
8 голосов
/ 09 января 2009

Я часто использую объект C # BackgroundWorker , чтобы запустить поток и выполнить задачу. Какой самый простой способ сделать то же самое в Delphi?

Вот код в C #:

private void button1_Click(object sender, EventArgs e)
{
  BackgroundWorker bg = new BackgroundWorker();
  bg.DoWork += new DoWorkEventHandler(bg_DoWork);
  bg.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bg_RunWorkerCompleted);
  test_number++;
  object[] arguments = { "test", test_number };
  bg.RunWorkerAsync(arguments);
}

void bg_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
      // done.
}

void bg_DoWork(object sender, DoWorkEventArgs e)
{
     // do actual work here
}

Ответы [ 2 ]

16 голосов
/ 09 января 2009

Посмотрите на OmniThreadLibrary от Primoz Gabrijelcic или на AsyncCalls от Andreas Hausladen, который должен предоставить вам одинаковую функциональность.

1 голос
/ 08 декабря 2011

для вашего решения это: delphi-components / backgroundworker этот компонент, такой как c # backgroundworker, свойство и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...