Rumah >pembangunan bahagian belakang >C++ >Mengapa Async Void Menyebabkan `System.InvalidOperationException` dalam ASP.NET?
Memahami Async Void dalam ASP.Net: Kiraan Operasi Cemerlang
Isu: Kaedah void Async dalam ASP.Net permohonan menimbulkan perkara berikut pengecualian:
System.InvalidOperationException: An asynchronous module or handler completed while an asynchronous operation was still pending
Penjelasan:
Kaedah tak segerak dalam ASP.Net menambah kiraan operasi tertunggak apabila diseru dan mengurangkannya apabila selesai. Kaedah async void secara langsung memberitahu ASP.Net SynchronizationContext, memintas rangka kerja MVC.
Task Return vs. Async Void:
Tidak seperti kaedah async void, mengembalikan Tugas daripada kaedah tak segerak:
Dalam contoh yang disediakan:
"Api dan Lupakan" Salah tanggapan:
Kaedah async void tidak boleh dianggap "fire and forget" dalam ASP.Net. Walaupun mereka mungkin kelihatan seperti kebakaran-dan-lupa dalam beberapa senario, ralat pengendalian semantik menunjukkan bahawa mereka tidak benar-benar lupa.
Pertimbangan Tambahan:
Atas ialah kandungan terperinci Mengapa Async Void Menyebabkan `System.InvalidOperationException` dalam ASP.NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!