Изменение реализации асинхронного вызова с использованием ManualResetEvent на использование комбинации методов Thread
Я ищу шаблон проектирования, чтобы перейти от использования ManualResetEvent к использованию методов Thread, таких как Thread.Join. Прямо сейчас я делаю асинхронный вызов, а затем использую ManualResetEvent, чтобы дождаться окончания асинхронного вызова, прежде чем продолжить в потоке, который сделал вызов.
Я был бы рад любой реализации, которая производила бы более стабильный и разборчивый код. Было бы интересно увидеть реализации, использующие ключевое слово yield C#, а также F# Async, если таковые имеются.
Благодарю.
1 ответ
Взгляните на библиотеку Джеффа Рихтера PowerThreading, доступную здесь. Эта библиотека имеет класс AsyncEnumerator, который использует ключевое слово yield для синхронного выполнения асинхронных операций.
Существует скринкаст об этом классе, доступный здесь:
http://channel9.msdn.com/posts/Charles/Jeffrey-Richter-and-his-AsyncEnumerator/
Надеюсь это поможет.
Valve.