3

someObj.someMethod()作成されたのと同じスレッドで実行されているかどうかを確認する方法はありsomeObjますか? これにより、後で特定の同時実行制約を台無しにした場合に、デバッグの頭痛の種を取り除くことができます。

4

1 に答える 1

3

これを行う唯一の方法は、スレッドIDを作成するときにそれを保存することです。.NET 4.5の場合:

readonly int ownerThreadId;
public SomeType() {
    ownerThreadId = Environment.CurrentManagedThreadId;
}

次に、の同じ用語と照合しsomeMethodます。

他のフレームワークバージョンでは、次のものが必要になる場合があることに注意してください。

ownerThreadId = Thread.CurrentThread.ManagedThreadId;

代わりは。

于 2012-10-15T09:42:01.393 に答える