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 回答