我試圖在c#中實現生產者/消費者模式。我有一個消費者線程監視共享隊列和一個將項目放到共享隊列中的生產者線程。生產者線程訂閱接收數據......也就是說,它有一個事件處理程序,並且只是坐在旁邊等待一個OnData事件觸發(數據從第三方api發送)。當它獲取數據時,它將它放在隊列中,以便消費者可以處理它。在.NET中,事件處理的線程是什麼?
當OnData事件在生產者中觸發時,我期望它被我的生產者線程處理。但這似乎並不是正在發生的事情。 OnData事件就好像它正在一個新的線程上處理一樣!這是.net總是如何工作...事件是在自己的線程處理?我可以控制什麼線程會在事件發生時處理事件嗎?如果幾乎同時發生數百個事件會怎麼樣?每個事件都有自己的線程?
它可能有助於發佈一些代碼和/或您正在使用的類。 – 2010-03-17 02:55:53
你是說C#事件關鍵字意義上的事件,還是EventWaitHandle意義上的事件?我認爲你應該發佈一些代碼... – 2010-03-17 03:03:30
@codeka:這聽起來像'事件',給他的職位。 – 2010-03-17 03:06:16