Проблема потоков в .NET 2005
Как это обойти? События, мутексы и т. п... (в зависимости от того, что нужно и что удобней)
Элементы управления в дотНете не потоко-безопасны. В MSDN поищи How to: Make Thread-Safe Calls to Windows Forms Controls
Просто поток отработал, посчитав и создав нужный мне объект, далее в конце я просто хочу этот объект кинуть в listBox. А он, паскуда, мне выдает такую проблему. Может можно как-то отследить, когда поток закончится? Вроде нельзя. Поэтому куда тут можно прилепить обработчик - ума не приложу=(
Блин, а вот MSDN-а то у меня как раз и нету=( Так что приходиться ставить точку после объекта и смотреть все доступные манипуляции с ним. Пока ни к чему не привело.
Блин, а вот MSDN-а то у меня как раз и нету=( Так что приходиться ставить точку после объекта и смотреть все доступные манипуляции с ним. Пока ни к чему не привело.Использовать нужно Invoke
При использовании Invoke действительно проблема разрешается, но при этом приложение замирает. Т.е. пропадает вообще смысл использования потока. Я-то хочу, что бы при долгом счете проценты бежали и свернуть можно было форму и т.д.
modelling = new ThreadStart(Modelling);
modelling_control = new Thread(modelling);
modelling.Invoke;
void Modelling
{
}
Оставить комментарий
prosh123
Проблема состоит в следующем:есть простой элемент управления на форме (listBox). В какой-то момент запускается поток, который пытается загрузить в этот listBox элемент. При этом выскакивает исключение:
"Cross-thread operation not valid: Control 'lstBox1' accessed from a thred other that the thread it was created on".
Пробовал изменять свойство потока ApartmentState (первое, что в голову пришло- не помогает.
Подскажите, пожалуйста, как заставить два потока работать с одним элементом управления.