私のフォームの読み込みイベントでは、データベースからいくつかのものを読み込み、データベースと別のサービスにいくつかの更新を送信しています。公開されるアップデートでは、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.
});
}