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

  • Jordie Jordan

    Jordie Jorda

    27 Ocak 2008
  • Kingsimba357

    Kingsimba357

    7 NİSAN 2008
  • Matus Slovak

    Matus Slovak

    5 Temmuz 2007