SORU
24 EKİM 2011, PAZARTESİ


'in Görev bir özel durum(lar) da Görev Bekleyen ya da kendi Özel özelliğe erişme tarafından görülmedi. Sonuç olarak, gözden kaçan durum oldu

Peki bunu çözmek için ne anlama geliyor?

TRAFİK görevleri kullanıyorum.

Bütün hata

Bir Görevin özel durum(lar) da Görev Bekleyen ya da kendi Özel özelliğe erişme tarafından görülmedi. Sonuç olarak, gözden kaçan durum sonlandırıcı iş parçacığı tarafından rethrown.

Sistem.İş parçacığı.Görevleri.TaskExceptionHolder.() Finalize

mscorlib

CEVAP
24 EKİM 2011, PAZARTESİ


Eğer oluşturduğunuz bir Görev, ve sen sakın arama task.Wait() ya da denemek için almak sonucu Task<T> Ne iştir tarafından toplanan çöp toplayıcı, öyle yerle bir uygulama sırasında sonuçlandırılması. Ayrıntılar için Exception Handling in the TPL MSDN sayfasına bakın.

Burada en iyi seçenek, "idare" dışında. Bu bir devam yoluyla yapılabilir göreve devamı takın, ve/oluşan özel durum/etc Kırlangıç giriş yapabilirsiniz. Bu görev, özel durumlar oturum açmak için temiz bir yol sağlar, ve basit bir uzantısı yöntemi olarak yazılabilir, yani:

public static void LogExceptions(this Task task)
{
    task.ContinueWith( t =>
    {
         var aggException = t.Exception.Flatten();
         foreach(var exception in aggException.InnerExceptions)
             LogException(exception);
    }, 
    TaskContinuationOptions.OnlyOnFaulted);
}

Yukarıdaki ile, app yıkılması ve günlük herhangi bir görev ile engelleyebilirsiniz:

Task.Factory.StartNew( () => 
   { 
       // Do your work...
   }).LogExceptions();

Alternatif olarak, TaskScheduler.UnobservedTaskException abone olun ve kolu var.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Caramthros

    Caramthros

    10 AĞUSTOS 2007
  • Hudson Music

    Hudson Music

    13 Mart 2007
  • Tube Time

    Tube Time

    14 Mayıs 2013