C
async
Apabila menggunakan C#untuk pengaturcaraan asynchronous, kaedah Task
boleh kembali void
atau
async
bila hendak kembali Task
void
Task
juga boleh menggunakan pemprosesan yang tidak normal dan mod asynchronous, seperti
Task
bila hendak kembali Task
async-foreach
void
adalah apabila anda jelas memerlukan jenis kembali , sebagai contoh, dalam program pemprosesan acara atau panggil balik UI. Dalam kes ini, pemanggil tidak boleh menunggu kaedah ini, dan async
dan void
kata kunci tidak diperlukan.
Elakkan kaedah Top -Level void
async
Kaedah mempunyai semantik khas dan harus digunakan dengan berhati -hati. Mereka mewakili operasi tak segerak teratas, dan berbanding dengan kaedah tugas yang kembali, mereka mempunyai peraturan rawatan yang tidak normal. Keabnormalan di bahagian atas dianggap keabnormalan yang tidak diproses dan boleh menyebabkan tingkah laku tidak sengaja. await
async void
tidak perlu, dan mungkin ada masalah, kerana: async void
void
Keabnormalan dalam kaedah tidak akan diproses dan boleh menyebabkan tingkah laku aplikasi yang tidak normal.
<code class="language-C#">public static async void AsyncMethod2(int num) { await Task.Factory.StartNew(() => Thread.Sleep(num)); }</code>
Adalah lebih baik untuk menggunakan kaedah dan async void
kata kunci untuk memastikan rawatan abnormal yang betul dan mengekalkan keupayaan untuk mengesan dan menguruskan operasi tak segerak.
Atas ialah kandungan terperinci Async/menunggu di C#: Bilakah untuk mengembalikan tugas vs tidak sah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!