Async lambda (ARCH107)
Anahtar dotnet.async.async-lambda · Önem warning · Kategori async
async void imzasına dönüşen asenkron lambda’lar tehlikelidir; içlerindeki istisnalar yakalanamaz. Bunun yerine Task döndüren delegelere uygun hata yönetimi ekleyin.
Hatalı
Bölüm başlığı “Hatalı”timer.Elapsed += async (s, e) =>{ await _repository.SaveAsync();};timer.Elapsed += async (s, e) =>{ try { await _repository.SaveAsync(); } catch (Exception ex) { _logger.LogError(ex, "Save failed"); }};Düzeltme
Bölüm başlığı “Düzeltme”Asenkron lambda gövdesini try/catch ile sarın veya Func<Task> delegesine geçin. Gerekirse kural proje/workspace bazında except/ignore ile bastırılabilir.