- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
如果我这样做:
private static System.Threading.AutoResetEvent event_2 = new System.Threading.AutoResetEvent(false);
然后在主线程中我做:
event_2.Set();
它将状态从 false
更改为 true
?
如果是这样,基本上可以:
AutoResetEventState = !AutoResetEventState
?
最佳答案
它将状态设置为允许线程在 Wait()
上继续执行的状态。
如果有任何线程已经在等待,那么一个线程将被允许继续进行并且状态将立即设置为未设置,因此所有其他线程将继续阻塞。
如果当前没有线程在等待,那么第一个等待的线程将立即被允许通过,但后续线程将被阻塞。
其他 EventWaitHandle
派生类共享相同的通用机制,但允许线程进行时的自动重置与 ManualResetEvent
不同,因此得名。
如果 true
传递给构造函数,则初始状态发出信号(允许线程前进),如果传递 false
则不发出信号,因此传递 true
与您在构造后立即调用 Set()
相同,而传递 false
则与您调用 Reset 相同()
。
关于c# - AutoResetEvent.Set() 是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33037396/
即使使用多年,我仍然不明白 AutoResetEvent 是如何工作的。 当谈到Set()时,是否应该有一部分代码在某处等待WaitOne()? 也就是说..如果在WaitOne()之前成功调用了Se
假设我正在处理来自多个线程的大量传入数据。当满足某些条件时,我可能希望这些数据充当特定操作的触发器。然而, Action 不可重入;所以同一个触发器被快速连续触发两次应该只会导致 Action 运行一
我有两个方法,ProcessQueue 和 AddToQueue,它们发生在不同的线程上。有时我会尝试在将项目添加到队列之前处理队列,此时我想等待将项目添加到队列中。我还想确保我永远不会遇到这样的情况
我在处理来自外部类的线程时遇到问题。我在线程方面还很陌生,所以很多事情对我来说仍然是个谜,所以请记住这一点。 我做了我的研究,发现了很多关于它的主题,包括: How to Sleep a thread
super 简单的问题,但我只是想澄清一下。我希望能够使用 AutoResetEvent 重新启动线程,因此我将以下方法序列调用到我的 AutoResetEvent。 setupEvent.Reset
我有两种与以下方法类似的方法。在 MainThreadDoWork 方法中,无论 OtherThreadWork 方法中的 autoResetEvent.Set() 是什么,循环都会完成执行。知道这个
private ConcurrentQueue _queue = new ConcurrentQueue(); private AutoResetEvent _queueNotifier = new
我在类库中有以下代码。然后我等待回拨到我的主应用程序中。我正在进行 DownloadStringAsync 调用,因此我必须等待几秒钟才能在完成后获得回调。我有 3 个这样的调用要等待,所以在我的主应
使用 Xamarin.Forms(适用于 iOS),我尝试实现在继续之前等待用户确认已设置 GeoLocation 权限的功能。 我尝试实现这一点的方法是让线程等待直到使用 AutoResetEven
有人可以介绍 AutoResetEvent.Reset() 方法的用例吗?我什么时候以及为什么要使用这种方法?我了解 WaitOne 和 Set,但这对我来说还不清楚。 最佳答案 是的,每当等待事件的
我可能超出了 AutoResetEvent 的正确设计范围,但不太清楚该求助于什么。我想要这种行为: var autoResetEvent = new AutoResetEvent(false); a
我一直在使用 AutoResetEvent 在线程之间进行同步。 一些线程(A-F)调用 autoresetevent.WaitOne();在等待另一个线程 (X) 完成其工作时 当拥有 autore
考虑以下模式: private AutoResetEvent signal = new AutoResetEvent(false); private void Work() { while (
我正在 .NET (C#) 中的多线程服务器中创建一些“工具”。 检查 .NET ManualResetEvent 的值相当容易,无需担心更改值: aManualResetEvent.WaitOne(
假设我必须在 .Net 3.5 SP1 中编排同步算法,标题中列出的任何同步原语都非常适合该任务。 从性能的角度来看,是否有任何一个比其他的性能更好? 我问这个是因为我已经编码了一段时间,但对这个主题
我在 RegisterWaitForSingleObject 中阅读过: http://www.albahari.com 而且我不明白我什么时候更喜欢使用 AutoResetEvent 而不是 Reg
我正在尝试实现AutoResetEvent。为此,我使用一个非常简单的类: public class MyThreadTest { static readonly AutoResetEvent
我正在尝试使用生产者消费者模式来处理和保存一些数据。我正在使用 AutoResetEvent 在两个 therads 之间发送信号,这里是我的代码 这里是生产者函数 public Results[]
我正在阅读 MSDN 上的 AutoResetEvent 文档,随后的警告有点让我困扰...... “重要:不能保证每次调用 Set 方法都会释放一个线程。如果两次调用距离太近,以至于第二次调用发生在
是c# ManualResetEvent和 AutoResetEvent创建或维护类的成本很高吗? 它们是否消耗某种有限的 Windows 内核资源,如果是,它的限制程度如何? 例如如果我的代码可以每
我是一名优秀的程序员,十分优秀!