我有一個應用程序,其中我跨線程共享事件句柄。這些事件句柄用於嚮應用程序發送完整的和接收到的串行I/O數據通知。這些句柄作爲類構造函數的傳遞參數或者對CreatThread
的調用被複制到新線程中。我認爲這是有效的,但我遇到了一個奇怪的錯誤,似乎這些事件可能沒有得到正確的信號。我應該使用DuplicateHandle
函數嗎?如果是這樣,下列用法是否正確?跨線程使用事件句柄 - C++
::DuplicateHandle(
::GetCurrentProcessId(),
hMyHandle,
::GetProcessIdOfThread(hReceivingThreadHandle),
&hMyDupHandle,
0,
TRUE,
DUPLICATE_SAME_ACCESS
);
不幸的是,我不能100%確定這個bug,因爲多線程調試很棘手。謝謝。