在我的項目中,我想從系統中捕獲一些命名事件,如「IDH/Presence」或「IDH/AmbiantLight」。如何在Windows CE中捕獲命名事件
我該怎麼做?
編輯:這可能與智能設備框架的EventWaitHandle類?
謝謝。
在我的項目中,我想從系統中捕獲一些命名事件,如「IDH/Presence」或「IDH/AmbiantLight」。如何在Windows CE中捕獲命名事件
我該怎麼做?
編輯:這可能與智能設備框架的EventWaitHandle類?
謝謝。
我不熟悉您在SDF中引用的功能(ctacke可能會回答這個問題)。但是,要等待一個已命名的事件句柄,只需簡單地用名稱調用CreateEvent
並等待返回的句柄。
請注意,如果事件自動重置,只有一個WaitForSingleObject
調用會捕獲它,然後它將被重置,因此如果其他線程在同一個句柄上等待,您可能無法捕獲該事件。
CF本身不提供使用命名系統事件的能力。
SDF's EventWaitHandle確實通過使用允許the name parameter的構造函數提供了這種功能。
另一個選項是P/Invoke CreateEvent和WaitForSingle/WaitForMultipleObjects。
無論何時發生指定事件,它都可以正常工作(true)。 有沒有更優雅的方式來做到這一點? – 2010-08-26 13:09:21
我沒有得到您的使用。你可以發佈代碼嗎?等待事件的優雅方式是'WaitForSingleObject' /'WaitForMultipleObjects'(http://msdn.microsoft.com/zh-cn/library/bb202783.aspx)。這是處理事件的正確方法,否則你會錯過事件驅動系統的全部要點。 – Shaihi 2010-08-26 13:13:20
同一個命名的事件可以多次引發。 所以我有一個等待這個事件的線程。 沒有while(true)只有第一個事件被捕獲。 – 2010-08-26 13:30:38