gpt4 book ai didi

silverlight - Silverlight 中没有信号量?

转载 作者:行者123 更新时间:2023-12-04 06:17:12 25 4
gpt4 key购买 nike

我正在使用 Silverlight 4 进行开发。

线程在那里。 WaitHandles (AutoResetEvent, ManualResetEvent) 也有。但是没有信号量?我错过了什么吗?

最佳答案

实际上,Silverlight 中没有信号量。 SL 的线程库受到限制。但是你可以很容易地制作自己的。下面是一个例子:

public class Semaphore
{
private object Mutex { get; set; }
private int Count { get; set; }
private int Max { get; set; }

public Semaphore(int max = 1)
{
Mutex = new object();
Max = max;
}

public void WaitOne()
{
while (true)
{
lock (Mutex)
{
if (Count < Max)
{
Count++;
return;
}
}

Thread.Sleep(50);
}
}

public void Release()
{
lock (Mutex)
{
if (Count >= 0)
{
Count--;
}
}
}
}

此代码基于 this post 的第二个答案,这比第一个更受欢迎,因为它实际上是线程安全的。

关于silverlight - Silverlight 中没有信号量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7080333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com