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

  • Brandon McCrary

    Brandon McCr

    15 Ocak 2012
  • Flash CS6 Video Tutorials for Beginners (Actionscript 3 Gaming)

    Flash CS6 Vi

    14 EYLÜL 2012
  • FOSDEM

    FOSDEM

    13 Ocak 2009