我想创建自定义类的实例。例如,我有两个帖子T1
和T2
。如果我从T1
创建实例,则从T2
对该实例的任何访问都应该抛出异常。就像在WinForms中一样,当我尝试从不是UI线程的线程进行访问控制时。
如何实现这一目标?我应该存储对current thread
的引用还是应该保留当前线程的unique ID
个? (如果该ID存在)。我使用哪种机制?
基本上它将是一个单一的,从给定的种子生成随机数。我想阻止从其他线程访问这个单例,因为我需要使用相同的种子再次运行我的应用程序来重现我的场景。如果我将从其他线程中使用此类,则无法再现,因为线程以不可预测的顺序启动/停止/执行操作。
答案 0 :(得分:3)
我认为您可以将Thread.CurrentThread.ManagedThreadId用于此目的。
但请注意,这些ID可能会在某个时间重复使用,因此在应用程序的整个生命周期内它们可能不是唯一的。但是,考虑到您所描述的情景,我认为这不应成为问题。
此外,您需要注意,您的“防护”可能无法与异步编码配合使用,具体取决于使用方式和位置。