event-wait-handle

    1熱度

    1回答

    我有一個線程等待一個的EventWaitHandle(的AutoResetEvent): AutoResetEvent.WaitOne(); 我有另一個線程信號的第一個線程繼續 AutoResetEvent.Set(); AutoResetEvent.Close(); 它是安全的調用.SET後.Close直接,換句話說,可以保證在AutoResetEvent處理之前等待的線程已經繼續了嗎

    0熱度

    2回答

    如果我在一個線程上創建一個變量,然後使用ManualResetEvent的WaitOne()方法阻塞,直到另一個線程將一個值分配給同一變量併發信號給EventWaitHandel。當我在第一個線程上讀取變量時,我保證始終獲得由其他線程分配的值?我擔心由於某些優化,我無法從CPU緩存中獲取值,因爲據我所知,我沒有使用任何內存障礙。)。 例如 var str = "multi-threading is

    0熱度

    1回答

    我目前正在開發一個帶有c#和.net框架4.5的windows服務來擴展現有專有應用程序的功能,這個服務在EventWaitHandleClass(msdn link)上等待從主應用程序發出的命名事件。事情是這樣的: bool boolWithFalse = false; string eName = "notification_event"; string usr = Environment

    0熱度

    2回答

    我有一個典型的生產者/消費者問題,並嘗試同步2個線程。 我想在C#Compact Framework中找到Suspend()和Resume()的替代方法。他們倆的arent CF支持:( 我發現了一些例子,它們都基於的EventWaitHandle和使用這樣的:。 private EventWaitHandle ewh = new AutoResetEvent(); 但問題是,同樣的Auto

    1熱度

    2回答

    我使用VS 2012,.Net 4.5。 執行該代碼(剛剛從文章更新一些樣品約線程): using System.Threading; class BasicWaitHandle { static EventWaitHandle wh = new AutoResetEvent(false); static void Main() { new Thread(Waiter).St

    1熱度

    2回答

    我只是很好奇,是否對系統範圍的命名有任何限制EventWaitHandle?我想使用一個URL作爲名稱,但它可能有很多奇怪的字符,我不希望它默默地失敗或其他一些,所以只要在這裏檢查是否有任何已知的非法字符爲這些的名字。 我試着自己找到這個,但我的google-fu沒有達到鼻菸。

    0熱度

    1回答

    我試圖通過Parallel.ForEach將處理的數據添加到BlockingCollection來處理大量的文本文件。 問題是我想要Task taskWriteMergedFile消耗集合並將它們寫入結果文件至少每隔800000行。 我想我不能在迭代中測試集合的大小,因爲它是平行的,所以我創建了Task。 在這種情況下,我可以將任務中的(true)循環轉換爲EventWaitHandle嗎? co

    0熱度

    2回答

    在實施ManualResetEvent的東西讓我感到驚訝, 據我瞭解mre.Set()指令信號,讓其他進程執行。 mre.WaitOne();保持在當前行並等待信號。除此之外,如果我們使用它與超時mre.WaitOne(100ms); 但是!讓我們假設StartCommunicate是一個線程的工作。 如果我使用waitHandle.Set();我的進程使用〜%25或用於另一個項目〜%1 CPU資

    0熱度

    1回答

    我構建了一個自定義數據實體存儲庫,其工廠根據類型(例如絕對或滑動過期)定義了保留策略。該策略還將緩存類型指定爲httpcontext請求,會話或應用程序。 MemoryCache由所有3種緩存類型中的緩存代理維護。無論如何,我有一個數據實體服務綁定到存儲庫,它負責爲我們的主數據實體進行加載和保存。這個想法是你使用實體庫,並不需要關心實體是否緩存或從它的數據源(在這種情況下,數據庫)中檢索。 一個明

    0熱度

    1回答

    我一直在四處尋找了一段時間,但沒有任何解決方案.. 我想達到的目標,是爲了暫停一個線程使用的EventWaitHandle類。 因此,我在窗體上創建了兩個按鈕。第一個應該發送消息,然後暫停,第二個應該取消暫停第一個按鈕的線程,然後發送另一個消息。這樣的: using System; using System.Windows.Forms; using System.Threading; na