我需要一个跨进程计数器。我可以在内存映射文件中映射一个整数并在其上使用 Interlocked.Increment,但在我看来 Semaphore.Release 会做同样的事情并且用更少编程开销。例如:
var mySem = new Semaphore(0, int.MaxValue, "mySemName");
// Get the next number.
int num = mySem.Release();
这看起来合理吗?
请您参考如下方法:
简短回答:是
但是...您必须递增(或递减)才能阅读它。没有属性可以读取当前的槽数(这是有道理的,因为它们并不是真正的用途)。
