6.23.2007

Thread Alive ?

CE中用CreateThread( ) 來Create Thread。
但是沒有query Thread State 的API (還是我沒找到?)。
所以連Thread 是活著還是死了也不知道。

GetExitCodeThread( )可以取得Thread 的ExitCode,如果Thread 還活者,ExitCode就是 "STILL_ACTIVE"。

Thread 自己可以用ExitThread(exitcode) 來設定自己的exit code。

所以要小心了,不要用 ExitThread( )來設定自己的 exit code 是 "STILL_ACTIVE",否則 用GetExitCodeThread( )來判斷的code就會判斷錯了。

那 "STILL_ACTIVE" 是多少呢? 在CE 5.0 下,是 : 0x103
果然是我耍白痴。
經過Robert的指點,Thread 本身就是一個Synchronize object,所以可以用WaitForSingleObject( ) 來取得Thread Active 狀態。或是Wait for Thread Complete。
以上兩種就是由TIMEOUT 參數決定。

沒有留言: