- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为 .NET Compact Framework 寻找一种快速高效的信号量实现。在 SO ( Semaphores in .NET compact framework ) 上还有另一个问题,建议使用 P/Invoke,但这在 XBox 360 上运行的 XNA Framework 中是不可能的。
我可以提供我自己的两个实现,但我相信这两个都不是最佳的。
Semaphore using an AutoResetEvent (粘贴)
托管信号量的一种可能实现方式是使用 AutoResetEvent。
在这种情况下,当工作可用时,AutoResetEvent 将仅将一个线程转换为“可运行”状态。当 OS 线程调度程序运行该线程时,它将重新打开 AutoResetEvent,使下一个线程进入“可运行”状态。因此线程将按顺序启动,并且只有在它们的前任实际开始执行之后才会启动。
Semaphore using a ManualResetEvent (粘贴)
另一种可能的实现方式是使用 ManualResetEvent。
在这种情况下,当工作可用时,ManualResetEvent 会将所有线程转换为“可运行”状态。 OS 线程调度程序运行的所有线程都会竞争工作项,直到第一个用完工作的线程再次重置 ManualResetEvent。换句话说,即使不是所有线程都需要,也可能所有线程都会被短时间唤醒。
有没有人知道更好的实现方式或可以提供改进我的建议?
最佳答案
编辑:没关系,只需阅读您引用的其他线程: XBox 的 CF 中是否不包含 Semaphore 类本身?
http://msdn.microsoft.com/en-us/library/system.threading.semaphore.aspx
否则,这是我在 codeproject 上找到的实现。自己没用过,但或许可以作为引用:-)
http://www.codeproject.com/KB/threads/inprocsemaphore.aspx
关于compact-framework - XBox 360 上是否有适用于 XNA 的良好信号量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1859964/
嗨,我正在考虑开发一种文件传输程序,想知道我是否想要尽可能好的加密,我应该使用什么? 我会用 C# 开发它,所以我可以访问 .net 库 :P在我的 usb 上有一个证书来访问服务器是没有问题的,如果
我创建的这个计算两个数组的交集是线性的方法的复杂度(在良好、平均、最差的情况下)? O(n) public void getInt(int[] a,int[] b){ int i=0; int
我已经能够使用 RTCPeerConnection.getStats() API 获得 WebRTC 音频调用的各种统计信息(抖动、RTT、丢包等)。 我需要将整体通话质量评为优秀、良好、一般或差。
基本问题: 如果我正在讲述/修改数据,我应该通过索引硬编码索引访问文件的元素,即 targetFile.getElement(5);通过硬编码标识符(内部翻译成索引),即 target.getElem
在 Linux 上,我想知道要调用什么“C”API 来获取每个 CPU 的统计信息。 我知道并且可以从我的应用程序中读取 /proc/loadavg,但这是系统范围的负载平均值,而不是每个 CPU 的
在客户端浏览器中使用 fetch api,GET 或 POST 没有问题,但 fetch 和 DELETE 有问题。它似乎将 DELETE 请求方法更改为 OPTIONS。 大多数研究表明是一个cor
我是一名优秀的程序员,十分优秀!