Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 排队线程是否影响同一类中的非线程安全对象?_C#_.net_Vb.net_Multithreading_Clr - Fatal编程技术网

C# 排队线程是否影响同一类中的非线程安全对象?

C# 排队线程是否影响同一类中的非线程安全对象?,c#,.net,vb.net,multithreading,clr,C#,.net,Vb.net,Multithreading,Clr,如果我使用ThreadPool.QueueUserWorkItem生成一个线程,而该线程不引用线程不安全的对象,它会破坏该非线程安全的对象吗 [编辑] 所谓非线程安全对象,我指的是可编程逻辑控制器的第三方接口,它无法打开同步连接或并发支持 我想我只是想确保,通过将线程与我对该对象的引用在同一个类中进行排队,我不会以一种我没有意识到的方式损害它的线程安全性。线程不是魔法。如果他们不引用一些数据,那么他们就不会影响它 编辑:如果您的代码监视新线程的创建,并监视QueueUserWorkItem,并

如果我使用ThreadPool.QueueUserWorkItem生成一个线程,而该线程不引用线程不安全的对象,它会破坏该非线程安全的对象吗

[编辑] 所谓非线程安全对象,我指的是可编程逻辑控制器的第三方接口,它无法打开同步连接或并发支持


我想我只是想确保,通过将线程与我对该对象的引用在同一个类中进行排队,我不会以一种我没有意识到的方式损害它的线程安全性。

线程不是魔法。如果他们不引用一些数据,那么他们就不会影响它


编辑:如果您的代码监视新线程的创建,并监视QueueUserWorkItem,并且如果监视器修改这些非线程安全对象,则是的,会产生影响


否则,不会。

只要新线程不直接或间接引用非线程安全对象,它就不会影响它

小技术点。调用ThreadPool.QueueUserWorkItem不一定会产生新线程。相反,它确保提供的委托将在不同的线程上运行。这可能会导致创建线程,或者更可能的情况是,它将使用已分配给线程池的现有线程