Семафоры в .NET compact framework - PullRequest
       33

Семафоры в .NET compact framework

3 голосов
/ 17 ноября 2009

К сожалению, нет семафора в System.Threading при использовании .NET Compact Framework. Я не уверен, почему это так, у кого-нибудь есть идея?

После поиска в Google я нашел группу людей, делающих свои собственные реализации, но ни один из них действительно не работал великолепно ... или вообще!

Итак, я пришел спросить экспертов ...

У кого-нибудь есть хороший класс / библиотека семафоров, которые они могут порекомендовать для .NET compact рамки?

OR

Можно ли как-нибудь подражать поведению?

У меня есть типичная настройка производителя / потребителя, в которой поток помещает объекты в очередь (System.Collections). Затем я хочу, чтобы потребительский поток вытаскивал объекты из очереди и выполнял работу, но, очевидно, только тогда, когда в очереди есть вещи для работы!

Я работаю в C #, но я буду принимать решения / псевдо на любом языке, если смогу реализовать его на .NET CF.

Ответы [ 2 ]

4 голосов
/ 17 ноября 2009

Вы можете просто PInvoke создать CreateSemaphore и ReleaseSemaphore - они реализованы на CE в coredll. Довольно просто написать красивую управляемую оболочку, которая выглядит как System.Threading.Semaphore.

2 голосов
/ 19 ноября 2009

Я думаю, что есть реализация семафора в OpenNETCF

...