Реализация классического асинхронного шаблона с использованием TPL

Я пытаюсь реализовать собственный TrackingParticipant для WF 4. Я могу написать метод Track, но моя реализация будет медленной.

Как я могу реализовать переопределения Begin / EndTrack с помощью библиотеки параллельных задач .NET 4.0 (TPL)? Я просмотрел TPL и традиционное асинхронное программирование .NET , но не знаю, как его здесь применить.

Обратите внимание, что TrackingParticipant является частью .NET и имеет классический асинхронный шаблон, предопределенный с использованием виртуальных методов.

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
    }
}

10
задан TrueWill 1 March 2011 в 22:24
поделиться