我可以使用C或Visual C++在Windows CE下獲得線程掛起計數,而無需調用resume或suspend函數嗎?我可以看到這樣做的唯一方法是一樣的東西我如何知道在Windows CE下是否掛起一個線程?
int Count = SuspendThread(ThreadHandle);
ResumeThread(ThreadHandle);
這有幾個問題,首先,我寧可不掛起線程,其次掛起可能會失敗,如果線程運行的內核代碼。我可以解決這個問題,但我覺得應該有一個更優雅的解決方案。我也可以使用
int Count = ResumeThread(ThreadHandle);
SuspendThread(ThreadHandle);
但是這有類似的問題。從句柄中獲得暫停計數的任何好的替代方法?
是的,這是做到這一點的唯一方法。 – ctacke 2009-05-22 13:41:21
有趣的答案。等待多久,1ms是否可以滿足所有情況,還是可能會變慢? – 2009-05-22 13:58:40
其實我認爲你可以使用等待時間0. WaitForSingleObject()將測試狀態並立即返回。您只想檢查WAIT_OBJECT_0的返回值。這會告訴你線程狀態被髮送,因此不會被掛起。 – ralphtheninja 2009-05-22 14:30:28