C# 排队线程是否影响同一类中的非线程安全对象?
如果我使用ThreadPool.QueueUserWorkItem生成一个线程,而该线程不引用线程不安全的对象,它会破坏该非线程安全的对象吗 [编辑] 所谓非线程安全对象,我指的是可编程逻辑控制器的第三方接口,它无法打开同步连接或并发支持C# 排队线程是否影响同一类中的非线程安全对象?,c#,.net,vb.net,multithreading,clr,C#,.net,Vb.net,Multithreading,Clr,如果我使用ThreadPool.QueueUserWorkItem生成一个线程,而该线程不引用线程不安全的对象,它会破坏该非线程安全的对象吗 [编辑] 所谓非线程安全对象,我指的是可编程逻辑控制器的第三方接口,它无法打开同步连接或并发支持 我想我只是想确保,通过将线程与我对该对象的引用在同一个类中进行排队,我不会以一种我没有意识到的方式损害它的线程安全性。线程不是魔法。如果他们不引用一些数据,那么他们就不会影响它 编辑:如果您的代码监视新线程的创建,并监视QueueUserWorkItem,并
我想我只是想确保,通过将线程与我对该对象的引用在同一个类中进行排队,我不会以一种我没有意识到的方式损害它的线程安全性。线程不是魔法。如果他们不引用一些数据,那么他们就不会影响它
编辑:如果您的代码监视新线程的创建,并监视QueueUserWorkItem,并且如果监视器修改这些非线程安全对象,则是的,会产生影响
否则,不会。只要新线程不直接或间接引用非线程安全对象,它就不会影响它 小技术点。调用ThreadPool.QueueUserWorkItem不一定会产生新线程。相反,它确保提供的委托将在不同的线程上运行。这可能会导致创建线程,或者更可能的情况是,它将使用已分配给线程池的现有线程