我应该使用async / await与Task.Run

时间:2013-01-23 14:00:56

标签: .net asynchronous

在我的表单加载事件中,我从数据库加载了一些东西,并向数据库和其他服务发送了一些更新。随着更新,我一直在使用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.
  });
}

1 个答案:

答案 0 :(得分:0)

只要您有一些路线确保在尝试处理数据之前完成任务,一切都应该没问题。