У меня есть многопоточное приложение. Диспетчера потоков содержит список объектов dbNodeListПроблемы с копированием списка t в потоки
class dbNodeList
{
public string nodepath;
public string nodename;
public string nodevalue;
//etc...
}
В связи с ThreadManager NodePath и имя_узла константы, которые предварительно заполнены. В рабочем потоке узловое значение выводится из обрабатываемого XML-сообщения.
Когда threadmanager запускает новый поток, он должен предоставить потоку истинную копию этого списка, поэтому, когда заполнение nodevalue заполнено, оно уникально для этого потока.
Так при запуске нить я не могу просто сказать
NewThread.nodeList = ThreadManager.nodeList; , как я думаю, это просто установка ссылки на список TheadManager. Если thread_1 устанавливает значение nodevalue, а затем thread_2 устанавливает его в другое значение, не будет ли он теперь некорректным в thead_1?
Спасибо, колее
Вы пробовали? – Shawn
См. [Эту статью] (http://theburningmonk.com/2010/10/threadstatic-vs-threadlocal/). – user1620220