c# - 检查当前线程是否等于构造对象的线程

标签 c#

有没有办法在 someObj.someMethod() 中检查它是否在创建 someObj 的同一线程上执行?如果我搞砸了某些并发约束,这可以让我在以后的调试中省去麻烦。

最佳答案

唯一的方法是在创建线程时存储线程 ID。在 .NET 4.5 上:

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

然后在 someMethod 中检查同一个术语。

请注意,在其他框架版本上,您可能需要:

ownerThreadId = Thread.CurrentThread.ManagedThreadId;

相反。

关于c# - 检查当前线程是否等于构造对象的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12892935/

相关文章:

c# - 什么是既可以代表文件又可以代表目录的名称?

c# - glframebuffertexture 和 glbindtexture 之间的区别

c# - 如何获取所有网络适配器的列表?

c# - 为什么我需要使用 Activator CreateInstance?

c# - 使用上下文信息进行解析谓词

c# - 如何用ASP Core运行爬虫、服务交互和生命周期问题

c# - 如何将分配给 Object 的 c# 基本类型数组转换为我可以迭代的内容?

c# - 数据库删除后 SQL Server 2008 关闭连接

C# 更改全局鼠标光标

c# - 创建通用扩展方法时出现问题