【发布时间】:2010-07-10 12:24:32
【问题描述】:
我有一个列表和两个使用该列表的线程。
第一个线程正在获取新连接,每个新连接都被添加到列表中。
第二个线程循环遍历 List 以处理连接(使用 foreach)。
问题在于,有时当第二个线程在 List 上循环时,List 在循环结束之前发生了变化。我什至尝试创建列表的新副本并循环访问它。但它会产生一些其他问题。
我不想创建一个新线程来处理每个新连接,因为我知道线程过多会损害性能。有没有其他方法来处理连接?
【问题讨论】:
-
如果您正在学习如何进行线程处理,请不要相信其他人说“线程过多会影响性能”。自己做,找出你的情况到底有什么限制。这样你会学到更多。
-
复制列表会出现什么样的问题?
-
表示目标数组大小不合适(复制完成前数组发生变化)。
标签: c# multithreading sockets c#-4.0