Async Void dan ASP.Net: Memahami Pengecualian
Apabila menggunakan kaedah async void dalam aplikasi ASP.Net, anda mungkin menghadapi pengecualian menyatakan, "Modul atau pengendali tak segerak selesai semasa operasi tak segerak masih belum selesai." Pengecualian ini timbul kerana async void menambah kiraan operasi tertunggak apabila seruan dan mengurangkannya setelah selesai.
Sebaliknya, kaedah Async Task mengembalikan objek Tugas, membenarkan rangka kerja ASP.Net menjejaki operasi tak segerak dan mengendalikan selesai dengan baik.
Mengapa Tugas Membantu
Dengan mengembalikan Tugasan, anda mendayakan rangka kerja untuk:
Async Void dan Fire-and-Forget
Sementara kaedah async void mungkin kelihatan dilaksanakan pendekatan api-dan-lupa, ini tidak tepat dalam konteks ASP.Net. Rangka kerja secara aktif menjejaki kaedah ini, menimbulkan pengecualian jika ia selesai lebih awal.
Untuk mencapai gelagat api-dan-lupa yang sebenar, gunakan kaedah Tugasan async dan abaikan Tugasan yang dikembalikan. Walau bagaimanapun, pemulangan pramatang daripada permintaan dalam ASP.Net secara amnya tidak digalakkan disebabkan oleh isu yang berpotensi.
Nota Tambahan
Atas ialah kandungan terperinci Mengapakah Menggunakan `async void` dalam ASP.NET Selalunya Menghasilkan 'Modul atau pengendali tak segerak selesai semasa operasi tak segerak masih belum selesai'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!