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

  • Motor Trend Channel

    Motor Trend

    11 Mart 2006
  • natescamp

    natescamp

    30 NİSAN 2009
  • Stanislav Petrov

    Stanislav Pe

    7 ŞUBAT 2009