小编Sla*_*ngy的帖子

如何创建FIFO /强信号量

我需要在C#中编写自己的FIFO /强信号量,使用我自己的信号量类作为基础.我找到了这个例子,但它不是很正确,因为我不应该使用Monitor.Enter/Exit.

这些是我的常规信号量的方法,我想知道是否有一种简单的方法可以使它适应FIFO.

public virtual void Acquire()
{

    lock (this)
    {

        while (uintTokens == 0)
        {

            Monitor.Wait(this);

        }

        uintTokens--;

    }

}

public virtual void Release(uint tokens = 1)
{

    lock (this)
    {

        uintTokens += tokens;
        Monitor.PulseAll(this);

    }

}
Run Code Online (Sandbox Code Playgroud)

.net c# concurrency multithreading

5
推荐指数
1
解决办法
3511
查看次数

标签 统计

.net ×1

c# ×1

concurrency ×1

multithreading ×1