Illegal cross-thread operation

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Illegal cross-thread operation

Сообщение Fedorfx » 04.02.2005 (Пт) 3:01

Что за шит.
Уже на нескольких примерах скаченных из инета вылетает вот такая бяка.
Illegal cross-thread operation: Control 'Status Bar' accessed from a thread other than the thread it was created on.

Там в коде из под формы запускается поток с классом. А потом поток пытается отобразить инфу на элементах формы. Вот эта бякак и вылезает.

Мне перевод понятен, и в принципе я догадываюсь почему такая бяка вылезает. НО это встречается на вполне рабочих примерах и не на ткнуться на это было нельзя.
Может быть дело в том что все эти примеры были написаны на 2003 студию а я их запускаю на 2005??
Скажите - в 2003 студии можно из потока обратиться к элементам формы? или конвертер что то мутит?

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 04.02.2005 (Пт) 14:12

Доступ к свойствам элемента WindowsForms возможне, только из потока создавшего его, либо через метод Invoke.

ЗЫ: Я у тя диски свои не забыл? Чёта найти не могу))))
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 04.02.2005 (Пт) 15:48

Вроде нету дисков.
Но если вдруг где завалились - я свистну.
За invoke спасибо.

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 24.02.2005 (Чт) 20:39

Люди, привидите хоть один пример, как воспользоваться invoke(...) (например для progressBar)
Моя дверь всегда открыта, если она не закрыта.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 25.02.2005 (Пт) 9:16

если в 2005 то лучше через BAckGroundworker
в 2003 не делал,
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 02.04.2005 (Сб) 21:08

Пытаюсь при получени данных потоком отобразить их на форме
НО ругается
Illegal cross-thread operation
а как можно сделать через BAckGroundworker я не понял
там сказано следующее
'This method will run on a thread other than the UI thread.
'Be sure not to manipulate any Windows Forms controls created
'on the UI thread from this method.
Что делать то???

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 04.04.2005 (Пн) 11:26

из этого события( потока) вызывается метод Воркера и получаешь событие в первом потоке

названия я щя не помню....))))
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 20.05.2005 (Пт) 23:29

Dmitriy Solomnikov писал(а):Люди, привидите хоть один пример, как воспользоваться invoke(...) (например для progressBar)

О, мне тоже надо. Мне тоже хочется иметь "доступ к свойствам элемента WindowsForms" не "только из потока создавшего его", и тоже в лоб не выходит. Что делать?
Изображение

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 21.05.2005 (Сб) 3:55

tyomitch Хорошь баянить! Уж скока раз проскакивало!

Создаёшь делегат и говоришь "Поток формы, выполни пожалуйста!"
Чё не понятного? А в 2005 бак юзай
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 21.05.2005 (Сб) 15:37

Sebas писал(а):tyomitch Хорошь баянить! Уж скока раз проскакивало!

Создаёшь делегат и говоришь "Поток формы, выполни пожалуйста!"
Чё не понятного? А в 2005 бак юзай

Не понятно, что писать. Дай хотя бы линку, где это хоть раз было - я, прежде чем апить топик, искал на форуме ответ, и не нашёл.

2005 у меня нету.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 21.05.2005 (Сб) 15:48

Блин, так тебе для .NET надо было? Запутал меня :)
Страница 355 :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 21.05.2005 (Сб) 16:47

GSerg писал(а):Блин, так тебе для .NET надо было? Запутал меня :)

Сорри, я больше не буду :oops::oops:
Последний раз редактировалось tyomitch 21.05.2005 (Сб) 18:55, всего редактировалось 1 раз.
Изображение

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 21.05.2005 (Сб) 18:24

sub xxx
form.test
end sub

form.invoke addressOf xxx


Чё непонятного то?
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 21.05.2005 (Сб) 18:58

Sebas писал(а):sub xxx
form.test
end sub

form.invoke addressOf xxx


Чё непонятного то?

Известно чего - "AddressOf expression cannot be converted to System.Delegate because System.Delegate is not a delegate type"


Я уже со всем разобрался. Приношу извинения за причинённое беспокойство.
В дальнейшем обязуюсь искать в Аппельмане раньше, чем в форуме :-)
Изображение


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 77

    TopList