manualresetevent

    2热度

    1回答

    鉴于以下代码: CancellationTokenSource cts = new CancellationTokenSource(); ManualResetEventSlim mre = new ManualResetEventSlim(); 和这两个线程执行并发: mre.Wait(cts.Token); cts.Cancel(); mre.Set(); 是保证抛出Opera

    0热度

    1回答

    我搞乱了多线程和制作某种任务引擎。这个想法是,引擎可以有一个可配置数量的线程在等待,当一个新任务到达时,第一个空闲线程将其拾取并执行。 问题是某些2线程以某种方式获取相同的任务。我查看了一下,我认为这段代码应该可以工作,但显然不适用。如果我现在将其注释掉了10ms的睡眠时间,那么它可以工作,但我不确定我是否理解了原因。它看起来像.Reset()函数在实际重置事件之前返回? 有人可以解释一下吗?有没

    1热度

    1回答

    我写了一个Windows服务,试图从MSMQ读取消息并处理它们。我已将一个安装程序添加到我的项目中,并且已将启动设置为手动。我安装该服务,然后通过服务工具启动它。然后,我可以返回到我的项目并附加到该过程以逐步完成代码。 但是,无论我做什么,我都无法在代码或服务工具中停止该服务。我只能认为这是因为我使用ManualResetEvent类来控制服务。这是我的代码。我试图测试错误部分,因为此时它应该抛出

    1热度

    2回答

    我最近注意到.NET框架中的ManualResetEvent类非常奇怪的行为。我正在使用C#,VS 2015,项目的目标设置为4.5.2。下面是完整的代码: using System; using System.Diagnostics; using System.Threading; using System.Threading.Tasks; namespace CSharpCOnsol

    -1热度

    1回答

    的考虑,我已经通过了两项ManualEventReset instances public void MyApiCall(ManualResetEvent ev1, ManualResetEvent ev2) { //my code } 现在,我必须“WaitOne”对于任何两个(无论哪个人,我需要尽快继续作为其中一个提出的信号)。有可能不改变API? 解决的办法之一是自旋锁:

    -1热度

    2回答

    我有这样的代码: ManualResetEvent EventListenerStopped; ... while (true) { IAsyncResult iar = this.ListenerHttp.BeginGetContext(ProcessRequest, null); if (WaitHandle.WaitAny(new[] { this.EventLis

    0热度

    1回答

    在这里我有一个执行的代码块: public override void Execute(XObjectList itemList, ProcessInfo processInfo) { ManualResetEvent syncEvent = new ManualResetEvent(false); execute(itemList, processInfo);

    0热度

    2回答

    我想实现加盖和缓存作业执行程序。 这将有一个单独的方法: public class CappedBufferedExecutor { public CappedBufferedExecutor(int bufferCapping, int fillTimeInMillisec); public Task<bool> EnqueueAsync(string val); }

    0热度

    1回答

    我试图使用的ManualResetEvent做出旗语样的情况,我已经把WaitOne,在他们的正确的地方Set和Reset。该WaitOne指令被称为一个监听线程,而地方TCP阅读之后: var networkStream = _clientSocket.GetStream(); networkStream.Read(bytesFrom, 0, Convert.ToInt32(_clientSo

    0热度

    1回答

    的代码抛出 的NullReferenceException的一个实例:不设置为一个对象 的实例就行((ManualResetEvent)handles[i]).Set()对象引用。我检查手柄[我]有一个值,当我调试它。我究竟做错了什么? ` string[] fileEntries = Directory.GetFiles(pathFife); ManualResetEven