2012-02-13 11 views
8

Ben ŞimdiGörev durumu WaitingForActivation - bu ne anlama geliyor?</p> <pre><code>if (tskLocalTaskList[i].IsCompleted == false) </code></pre> <p>görüyorum: i (görev listeye atanan yeni görevler) görev durumunu</p> böyle <p>kontrol ederken

var newTask = Task.Factory.StartNew(() => 
{ 
fcStartSubPageCrawl(srMainSiteURL, srMainSiteId); 
}).ContinueWith((t) => 
{ 
    var aggException = t.Exception.Flatten(); 
foreach (var exception in aggException.InnerExceptions) 
    csPages.LogException(exception.ToString()); 
}, 
TaskContinuationOptions.OnlyOnFaulted); 

altına yolu ile wpf görevleri başlıyorum Bu görev durumu = BekliyorForActivation

Bu ne anlama geliyor? Ve neden aktivasyon bekliyor?

C# 4.0 WPF

cevap

6

WaitingForActivation görev Başlat yöntemi çağrısı ve görev Görev zamanlayıcısı tarafından planlanan alır ettiği an arasında bulunduğu zamandır. Bu nedenle, bir görevin başlatma yöntemine yapılan bir çağrıdan hemen sonra, görev durumu WaitingForActivation olarak ayarlanmakta ve scheduler.AddWork çağrısı yapılır. Burada, Görev ya scheduler (WaitingToRun) ya da immidiatly çalıştırın.

Oh, ve bu WPF ile ilgisi yoktur, Görevler i görevi hemen başlar yapmak nasıl BCL

+1

bir parçasıdır? – MonsterMMORPG

+2

Bu, ContinueWith ifadenizden kaynaklanmaktadır. Bu, var newTask'a atadığınız yeni bir Görev oluşturur. Ancak bu görev, orijinal görevin bir İstisna ile sonuçlanmayacağı zaman planlanamaz veya çalıştırılamaz. önce asıl görevi newTask'a atamanız ve sonra newTask.ContinueWith (...., TaskContinuationOptions.OnlyOnFaulted) öğesini çağırmanız gerekir; – Polity

+0

Cevabınız için teşekkürler. şimdiki yolum da çalışıyordu. Sonsuza dek beklemek gibi değildi. ancak kodu söylediğin gibi değiştirdim ve şimdi koşarken görüyorum. her ne kadar hız farkı hissetmedim. hala aynı. Bu, web sayfalarını taramakla ilgili. – MonsterMMORPG

İlgili konular