Delphi スレッドのステータスを確認する方法
Delphiでは、ThreadオブジェクトのThreadStateプロパティでスレッドの状態を確認できます。
例えば、myThreadという名前のスレッドオブジェクトがあるとします。このスレッドの状態を確認するには、以下のコードを実行することができます。
if myThread.ThreadState = TThreadState.tsRunning then
ShowMessage(‘スレッドが稼働中’)
else if myThread.ThreadState = TThreadState.tsSuspended then
ShowMessage(‘スレッドが一時停止中’)
else if myThread.ThreadState = TThreadState.tsTerminated then
ShowMessage(‘スレッドが終了’)
else if myThread.ThreadState = TThreadState.tsFinished then
ShowMessage(‘スレッドが完了’)
else if myThread.ThreadState = TThreadState.tsCreating then
ShowMessage(‘スレッドが作成中’)
else if myThread.ThreadState = TThreadState.tsFreeOnTerminate then
ShowMessage(‘スレッドが終了時に解放’)
else if myThread.ThreadState = TThreadState.tsCritical then
ShowMessage(‘スレッドがクリティカル状態’)
else
ShowMessage(‘不明なスレッドの状態’);
ThreadState属性は列挙型を返却するので、条件判定文でスレッドの実際の状態を判定する必要があります。