たとえば、C# でスレッドをデバッグする場合、各スレッドの ID を確認できます。
同じスレッドをプログラムで取得する方法が見つかりませんでした。現在のスレッドの ID (のプロパティ内Thread.currentThread
) を取得することさえできませんでした。
それで、Visual Studio はどのようにしてスレッドの ID を取得するのでしょうか。また、2345
たとえば、 id を使用してスレッドのハンドルを取得する方法はあるのでしょうか。
ベストアンサー1
GetThreadId
指定されたネイティブ スレッドの ID を返します。マネージ スレッドで動作させる方法はいくつかあると思いますが、必要なのはスレッド ハンドルを見つけて、それをその関数に渡すことだけです。
管理スレッドの場合は、System.Environment.CurrentManagedThreadId
。
以下に記載されている古い SDK オプションも存在しますが、推奨される使用方法は ですSystem.Environment.CurrentManagedThreadId
。
GetCurrentThreadId
現在のスレッドの ID を返します。.NETGetCurrentThreadId
2.0 以降では非推奨になりました。Thread.CurrentThread.ManagedThreadId
現在の管理対象スレッドの一意の識別子を返します。ただしSystem.Environment.CurrentManagedThreadId
、System.Environment.CurrentManagedThreadId
が優先されます (CA1840)。