Помогите с портированием функциональности потоков: Win32 -> .Net - PullRequest
1 голос
/ 20 мая 2010

Я отвечаю за портирование класса из унаследованного кода Win32 на .Net, и я столкнулся с моделью потоков, которую я не знаю, как лучше реализовать в .Net. По сути, Win32 имеет один рабочий поток, который вызывает WaitForMultipleObjects () и выполняет определенный фрагмент кода при запуске определенного объекта. Это своего рода эффект «первым пришел - первым обслужен», который мне нужно эмулировать в моем собственном коде. Но я не уверен, как лучше сделать это в .Net. У кого-нибудь есть идеи?

Я вижу, что в .Net нет эквивалента WaitForMultipleObjects (), только класс ThreadPool, который, по-видимому, обеспечивает большую часть того, что мне нужно, но я не уверен, что он лучший, так как у меня всего четыре объекта Всего ждать и выполнить код для.

Спасибо, Даниэль

1 Ответ

1 голос
/ 20 мая 2010

Ну, есть WaitHandle.WaitAny и WaitHandle.WaitAll - это тебе помогает?

По общему признанию, я вероятно не использовал бы этот подход, чтобы начать с: я использовал бы очередь производителя / потребителя Вы используете .NET 4? Это имеет намного лучшую поддержку потоков через Parallel Extensions, что упрощает подобные вещи.

...