Implementar padrão assíncrono clássico usando TPL
Estou tentando implementar um TrackingParticipant personalizado para WF 4. Posso escrever o método Track, mas minha implementação será lenta.
Como implementar as substituições Begin / EndTrack usando a Task Parallel Library (TPL) do .NET 4.0? Eu olheiTPL e programação assíncrona .NET tradicional mas não sei como aplicá-lo aqui.
Observe que TrackingParticipant faz parte do .NET e tem o Classic Async Pattern predefinido usando métodos virtuais.
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
}
}