Изменение реализации асинхронного вызова с использованием ManualResetEvent на одно с использованием комбинации методов Thread - PullRequest
0 голосов
/ 15 декабря 2008

Я ищу шаблон проектирования, чтобы перейти от использования ManualResetEvent к использованию методов Thread, таких как Thread.Join. Прямо сейчас я делаю асинхронный вызов, а затем использую ManualResetEvent, чтобы дождаться завершения асинхронного вызова, прежде чем продолжить в потоке, который сделал вызов.

Я был бы рад любой реализации, которая производила бы более стабильный и разборчивый код. Было бы интересно увидеть реализации, использующие ключевое слово yield C #, а также F # Async, если таковые имеются.

Спасибо.

1 Ответ

1 голос
/ 15 декабря 2008

Взгляните на доступную библиотеку Джеффа Рихтера PowerThreading здесь . В этой библиотеке есть класс AsyncEnumerator, который использует ключевое слово yield для синхронного выполнения асинхронных операций.

Существует скринкаст об этом классе, доступный здесь:

http://channel9.msdn.com/posts/Charles/Jeffrey-Richter-and-his-AsyncEnumerator/

Надеюсь, это поможет.

Valve.

...