Apakah ada manfaat menggunakan pola async/menunggu saat Anda menjalankan sesuatu secara sinkron?
Misalnya di aplikasi saya, saya memiliki metode statis yang dipanggil oleh cron (hangfire) untuk melakukan berbagai tugas terikat IO. Contoh sederhana yang dibuat-buat adalah ini:
static void Run(string[] args)
{
var data = Test(args);
//..do stuff with returned data
}
public static List<string> Test(string[] args)
{
return Db.Select(args);
}
Apakah ada keuntungan menulis kode ini seperti:
static void Run(string[] args)
{
var dataTask = await TestAsync(args);
dataTask.Wait();
//..do stuff with returned data
}
public static async Task<List<string>> TestAsync(string[] args)
{
return await Db.SelectAsync(args);
}
Rekan saya memberi tahu saya bahwa saya harus selalu menggunakan pola ini dan menggunakan metode async jika tersedia karena ia menambahkan pengoptimalan di balik terpal, tetapi dia tidak dapat menjelaskan alasannya dan saya tidak dapat menemukan penjelasan yang jelas.
Jika saya menulis kode saya dengan pola jenis ini di metode statis saya, hasilnya akan terlihat seperti:
var data = someMethod();
data.Wait();
var data2 = someOtherMethod(data);
data2.Wait();
Saya memahami penggunaan pola menunggu async ketika menjalankan banyak tugas secara bersamaan tetapi ketika kode berasal dari metode statis dan harus dijalankan secara berurutan seperti ini, apakah ada manfaatnya sama sekali? Ke arah mana saya harus menulisnya?
await
danWait()
dalam kode produksi? Jika ya, mengapa? - person Peter Bons   schedule 10.11.2018