Menggunakan 'async' dalam Aplikasi Konsol dalam C# [pendua]
Apabila bekerja dengan kaedah 'async' dalam C#, peraturan ibu jari adalah untuk memastikan operasi tak segerak dikendalikan secara konsisten sepanjang aplikasi. Ini bermakna jika kaedah 'async' digunakan, sehingga ke titik masuk, kaedah juga harus ditandakan sebagai tak segerak.
Walau bagaimanapun, dalam aplikasi konsol, kaedah Utama berfungsi sebagai entri titik dan tidak boleh dibuat 'async' kerana ralat kompilasi. Ini menimbulkan persoalan: bagaimana untuk mengendalikan operasi tak segerak dalam aplikasi konsol dengan berkesan?
Salah satu pendekatan ialah menggunakan kaedah segerak dalam kaedah Utama dan tunggu hasil operasi tak segerak:
static void Main() { MainAsync().Wait(); } static async Task MainAsync() { ... }
Kaedah ini menunggu selesainya operasi tak segerak sebelum meneruskan, memastikan permohonan tidak ditamatkan lebih awal.
Sebagai alternatif, anda boleh menggunakan konteks tak segerak anda sendiri untuk mengurus pelaksanaan operasi tak segerak dalam aplikasi konsol:
static void Main() { AsyncContext.Run(() => MainAsync()); } static async Task MainAsync() { ... }
Pendekatan ini membolehkan anda menggunakan kaedah 'async' dalam Kaedah utama tanpa menimbulkan ralat penyusunan. Kelas AsyncContext membungkus pelaksanaan operasi tak segerak dan menyediakan cara yang konsisten untuk mengendalikannya dalam aplikasi konsol.
Kedua-dua pendekatan adalah pilihan yang berdaya maju untuk mengendalikan operasi tak segerak dalam aplikasi konsol, bergantung pada keperluan dan keutamaan khusus bagi pemaju. Dengan mematuhi prinsip ini, anda boleh memastikan aplikasi konsol anda distrukturkan dengan betul dan mengendalikan operasi tak segerak dengan cekap.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Kaedah Async dengan Berkesan dalam Aplikasi Konsol C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!