C # 'da, bir yöntemi geçersiz kıldığınızda, özgün yöntem olmadığında geçersiz kılma zaman uyumsuz hale getirilmesine izin verilir. Bu zayıf bir form gibi görünüyor.
Beni buna getiren örnek buydu - Bir yük testi problemine yardımcı olmak için getirildim. Yaklaşık 500 eşzamanlı kullanıcıda, oturum açma işlemi bir yönlendirme döngüsünde bozulacaktır. IIS, "Eşzamansız bir işlem beklemedeyken eşzamansız bir modül veya işleyici tamamlandı" iletisiyle özel durumları günlüğe kaydediyordu. Bazı aramalar beni birisinin kötüye kullandığını düşünmeye yönlendirdi async void
, ancak kaynaktaki hızlı aramalarım hiçbir şey bulamadı.
Ne yazık ki, 'async \ s [^ T]' gibi bir şey daha aradığımda 'Async \ svoid' (regex search) için arama yapıyordum (Görev tam olarak nitelendirilmediğini varsayarak ... puan alırsınız).
Daha sonra bulduğum async override void onActionExecuting(...
bir baz denetleyicisiydi. Açıkçası bu sorun olmalı ve öyleydi. Bunu düzeltmek (bir an için senkronize hale getirmek) sorunu çözdü.
Soruya geri dön: Neden ah, arama kodu asla beklemediğinde neden geçersiz kılmayı async olarak işaretleyebilirsiniz?
Task
.