У меня есть пара ситуаций в моем коде, где различные потоки могут создавать рабочие элементы, которые по разным причинам не должны выполняться параллельно. Я хотел бы удостовериться, что работа выполняется в режиме FIFO, независимо от того, из какой темы она приходит. В Java я помещал рабочие элементы в однопоточное ExecutorService
; есть ли эквивалент в С#? Я пробрал что-то вместе с Queue
и кучей блоков lock(){}
, но было бы неплохо иметь возможность использовать что-то готовое и проверенное.
Обновление: Есть ли у кого-нибудь опыт работы с System.Threading.Tasks? У этого есть решение для такого рода вещи? Я пишу приложение Monotouch, поэтому, кто знает, могу ли я даже найти его версию, которую я мог бы использовать, но по крайней мере было бы о чем подумать о будущем.
Обновление # 2 Для разработчиков С#, незнакомых с библиотеками Java, о которых я говорю, в основном я хочу что-то, что позволяет различным потокам передавать рабочие элементы таким образом, чтобы все эти рабочие элементы выполнялись на один поток (который не является ни одним из вызывающих потоков).