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