- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 .NET Framework 2.0 上,AutoResetEvent 和 ManualResetEvent 继承自 EventWaitHandle。 EventWaitHandle 类有 4 个不同的构造函数。 3 个构造函数支持为事件命名。另一方面,ManualResetEvent 和 AutoResetEvent 都不支持命名并提供一个接收初始状态的构造函数。我可以简单地从 EventWaitHandle 继承并编写我自己的那些支持所有构造函数重载的类的实现,但如果我不需要的话,我不喜欢重新发明轮子。我的问题是:
最佳答案
您可以像这样进行命名手动重置事件:
// Open the event by name.
EventWaitHandle namedMRSE =
new EventWaitHandle(false, EventResetMode.ManualReset, @"TheName");
Event wait handles are useful in many of the same synchronization scenarios as the Monitor class. Event wait handles are often easier to use than the System.Threading.Monitor.Wait and System.Threading.Monitor.Pulse(System.Object) methods, and they offer more control over signaling. Named event wait handles can also be used to synchronize activities across application domains and processes, whereas monitors are local to an application domain.
关于multithreading - 为什么 AutoResetEvent 和 ManualResetEvent 不支持在构造函数中命名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2816759/
即使使用多年,我仍然不明白 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 内核资源,如果是,它的限制程度如何? 例如如果我的代码可以每
我是一名优秀的程序员,十分优秀!