Это мой первый вопрос в этом форуме, поэтому я надеюсь, что понятно:Ошибка инициализации нити (Закрытие?)
I'm с помощью Visual Studio 2010 RTM Программирование в C#
Конструктор класса , которые преобразуются в поток, всегда принимают значения из последнего словаря. Я не знаю, что я делаю неправильно, кто-то?
Кодекс работы это не распространяется:
Dictionary<string, Queue<string>> colas;
public DataDispatcher(Dictionary<string, int> lectoras, ReadEventHandler callback)
{
colas = new Dictionary<string, Queue<string>>();
foreach (KeyValuePair<string, int> pair in lectoras)
{
colas.Add(pair.Key, new Queue<string>>());
Thread hilo = new Thread(
() => new ReadHandler(pair.Value, colas[pair.Key], callback));
hilo.Name = "Hilo-" + hilo.ManagedThreadId.ToString();
hilo.Start();
}
}
Вместо этого код работает отлично:
Dictionary<string, Queue<string>> colas;
public DataDispatcher(Dictionary<string, int> lectoras, ReadEventHandler callback)
{
colas = new Dictionary<string, Queue<string>>();
foreach (KeyValuePair<string, int> pair in lectoras)
{
Queue<string> qs = new Queue<string>();
colas.Add(pair.Key, qs);
int jaula = pair.Value;
Thread hilo = new Thread(
() => new ReadHandler(jaula, qs, callback));
hilo.Name = "Hilo-" + hilo.ManagedThreadId.ToString();
hilo.Start();
}
}
Определить «работы» и «не работает». Что ты имеешь в виду? – Oded
Какая ошибка вы получаете? – Mayank