WF 4 için özel bir TrackingParticipant'ı uygulamaya çalışıyorum. Track yöntemini yazabilirim, ancak uygulamam yavaş olacaktır.TPL kullanarak Klasik Async Kalıbı Uygula
.NET 4.0'ın Görev Paralel Kitaplığı'nı (TPL) kullanarak Begin/EndTrack geçersiz kılmalarını nasıl uygularım? TPL and Traditional .NET Asynchronous Programming'a baktım ama nasıl uygulayacağımı bilmiyorum.
TrackingParticipant'ın .NET'in bir parçası olduğunu ve sanal yöntemleri kullanarak önceden tanımlanmış Klasik Async Paterni olduğunu unutmayın.
public class MyTrackingParticipant : TrackingParticipant
{
protected override IAsyncResult BeginTrack(
TrackingRecord record, TimeSpan timeout,
AsyncCallback callback, object state)
{
// ?
}
protected override void EndTrack(IAsyncResult result)
{
// ?
}
protected override void Track(TrackingRecord record, TimeSpan timeout)
{
// synchronous code to be called
}
}
Teşekkür ederiz! Bu çalışıyor; garip bir şekilde, iş akışı Track() tamamlanıncaya kadar hala engellenir. (Başlatma/Bitiş yöntemlerini çağırır.) İstediğim davranışı almak için bir sıra uygulamak zorundayım gibi görünüyor. (Doğru cevabınızdan kaçınmak için değil!) – TrueWill