3

不幸的是,使用 .NET Compact Framework 时 System.Threading 中没有信号量。我不确定为什么会这样,有人有想法吗?

谷歌搜索后,我发现很多人给出了他们自己的实现,但没有一个人真的很好用......或者根本没有!

所以特地来请教专家...

有没有人可以为 .NET 紧凑型框架推荐一个好的信号量类/库?

或者

有什么办法可以模仿这种行为吗?

我有一个典型的生产者/消费者设置,其中线程将对象推送到队列(System.Collections)。然后我希望消费者线程将对象从队列中拉出并开始工作,但显然只有当队列中有东西可以使用时!

我正在使用 C#,但只要我可以在 .NET CF 上实现它,我就会采用任何语言的解决方案/伪代码。

4

2 回答 2

4

您可以只 PInvoke 到 CreateSemaphore 和 ReleaseSemaphore - 它们是在 coredll 中的 CE 上实现的。编写一个看起来像 System.Threading.Semaphore 的漂亮托管包装器非常容易。

于 2009-11-17T07:12:21.710 回答
2

我认为OpenNETCF中有一个信号量实现

于 2009-11-19T15:50:16.640 回答