0

在我的表单加载事件中,我从数据库中加载了一些东西,并向数据库和其他服务发送了一些更新。随着即将发布的更新,我一直在使用 Task.Run(() => ) 来异步运行这些更新。在我看来,我只想在仍然异步执行更新同时仍按顺序通过表单的加载事件时使用 async/await。在下面的示例中,我不关心 setupDBUpdate 或 sendServiceCall 在我点击 doOtherWork 之前完成。

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 回答