Estoy tratando de implementar un TrackingParticipant personalizado para WF 4. Puedo escribir el método Track, pero mi implementación será lenta.Implementar el patrón Async clásico con TPL
¿Cómo puedo implementar las anulaciones de Begin/EndTrack con la Biblioteca de tareas paralelas (TPL) de .NET 4.0? Miré TPL and Traditional .NET Asynchronous Programming pero no estoy seguro de cómo aplicarlo aquí.
Tenga en cuenta que TrackingParticipant es parte de .NET y tiene el Patrón Async clásico predefinido mediante métodos virtuales.
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
}
}
¡Gracias! Esto funciona; Curiosamente, el flujo de trabajo sigue bloqueado hasta que se completa Track(). (Llama los métodos Begin/End.) Parece que tendría que implementar una cola para obtener el comportamiento que quiero. (¡No restar valor a tu respuesta correcta!) – TrueWill