在我的表单加载事件中,我从数据库加载了一些东西,并向数据库和其他服务发送了一些更新。随着更新,我一直在使用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.
});
}
答案 0 :(得分:0)
只要您有一些路线确保在尝试处理数据之前完成任务,一切都应该没问题。