Memanggil Kaedah Async dari Utama: Panduan Komprehensif
Pengenalan
Persoalannya timbul apabila pembangun perlu menggunakan kaedah tak segerak daripada konteks segerak tradisional seperti kaedah Utama. Keadaan ini sering muncul apabila meneroka alam pengaturcaraan async dalam C#.
Masalah
Memandangkan kaedah tak segerak berikut:
public class test { public async Task Go() { // ... various async operations } }
The dilema timbul apabila cuba memanggil Pergi dari kaedah Utama, entri segerak program titik.
Penyelesaian
Dalam C# 7.1 dan versi yang lebih baru, memanggil kaedah async daripada Utama adalah mudah:
static async Task Main(string[] args) { test t = new test(); await t.Go(); Console.WriteLine("finished"); Console.ReadKey(); }
Kod ini memastikan bahawa Operasi tak segerak Go selesai sebelum program tamat.
Untuk versi C# sebelum 7.1, pendekatan berbeza diperlukan:
static void Main(string[] args) { test t = new test(); t.Go().Wait(); Console.WriteLine("finished"); Console.ReadKey(); }
Memanggil Tunggu() menyekat urutan semasa sehingga operasi tak segerak Go berakhir.
Faedah Kaedah Async
Menghapuskan panggilan balik, yang boleh menjadikan kod rumit dan sukar untuk dikekalkan, adalah kelebihan utama pengaturcaraan tak segerak menggunakan kata kunci async. Ia membolehkan aliran pelaksanaan yang bersih dan berurutan sambil membenarkan operasi lain diteruskan secara serentak.
Atas ialah kandungan terperinci Bagaimanakah Saya Memanggil Kaedah Async daripada Kaedah Utama Segerak dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!