0

私のフォームの読み込みイベントでは、データベースからいくつかのものを読み込み、データベースと別のサービスにいくつかの更新を送信しています。公開されるアップデートでは、Task.Run(() => ) を使用してこれらを非同期で実行しています。フォームのロードイベントを順番に実行しながら、非同期で更新を行いたい場合にのみ、 async/await を使用したいようです。以下の例では、doOtherWork を実行する前に setupDBUpdate または sendServiceCall が終了することは気にしません。

void MainForm_Load(object sender, EventArgs e)
{
    loadData();
    setupDBUpdate();
    sendServiceCall();
    doOtherWork();
}

private void setupDBUpdate()
{
    var timer = new Timer();
    timer.Interval = 60000;
    timer.Tick += timer_Tick;
    timer.Start();
}

void timer_Tick(object sender, EventArgs e)
{
  Task.Run(() =>
  {
    // do database update
  });
}

void sendServiceCall()
{
  Task.Run(() =>
  {
    // connect to service and send an update.
  });
}
4

1 に答える 1

0

データを処理する前にタスクが完了していることを確認するためのルートがある限り、すべて問題ありません。

于 2013-01-23T14:49:55.260 に答える