3
有沒有辦法在someObj.someMethod()
內檢查它是否在創建了someObj
的同一線程上執行?如果我搞砸了某些併發約束,這可以在以後節省我的調試頭痛。檢查當前線程是否等於構建對象的線程
有沒有辦法在someObj.someMethod()
內檢查它是否在創建了someObj
的同一線程上執行?如果我搞砸了某些併發約束,這可以在以後節省我的調試頭痛。檢查當前線程是否等於構建對象的線程
要做到這一點的唯一方法是在創建時存儲線程ID。在.NET 4.5:
readonly int ownerThreadId;
public SomeType() {
ownerThreadId = Environment.CurrentManagedThreadId;
}
然後檢查針對同一術語someMethod
。
注意,其他架構的版本,您可能需要:
ownerThreadId = Thread.CurrentThread.ManagedThreadId;
代替。