Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед

Сообщение

Начинающий программист


Смехотворец

Зарегистрирован:
28 March 2005
Сообщения: 1133
Примеры кода: 1
 

RE[2]: Подвисает основной поток формы при работе с несколькими threads

05 May 2008 13:41  



private void ProceedEvent(int id)
{
if ( Не знаюthis.InvokeRequired)
{
cLog.WriteSQLLog(logPlaces.lpfrmMain, "Заход в обработку ИД");
dProceedEvent d = new dProceedEvent(ProceedEvent);
this.BeginInvoke(d, new object[] { id });
return;
}

Вот этод код мне не нравится, я если чесно с делегатами не разбирался, но вроде делегат у вас вызывается из функции делегата. Не рекурсия ли это)))).


Не, тут нормально все.
Рашифровываю: если требуется вызов с нити формы (т.е. мы зашли сюда НЕ с нити формы) подается команда на вызов с нити формы this.BeginInvoke(...) и выход из процедуры по return. Когда мы сюда попадаем с нити формы, this.InvokeRequired == false и выполняется основной блок кода. Я бы конечно через else написал, но на логику работы это не влияет, просто с else нагляднее.
Если бы была (бесконечная) рекурсия, было бы не зависание а вылет. Зависание -- следствие проблем с параллельным доступом.

Не приходило в голову, что если оно используется, то надо.


5 минут назад для подключения к vnp сети мне предложили скачать хитроумный клиент, который, естественно, не захотел работать под моей 64-х битной вислой. При этом стандатрная маздаевская служба маршрутизации и удаленного доступа поддерживает кучу политик удаленного доступа, всевозможные способы аутентификации и шифрования, различные параметры выдачи ip адресов и настроек сети, не требует никаких специальных клиентов и работает с любой более-менее свежой версией виндовз (а по религиозным праздникам и с нечетными версиями линукс).
Я это к тому, что далеко не всё используется, потому что оно "надо", бывают еще "интересно", "охота самовыражения", "лень думать/читать инструкцию", "я так хачу и пашли все в ж...у" и п.р. лейтмотивы, которые не всегда приводят к оптимальному решению.
Программирую за еду.
Наверх
  



Winforms

 Подвисает основной поток формы при работе с несколькими threadsvriadchenko  24 April 2008 16:12
 RE: Подвисает основной поток формы при работе с несколькими threadsНачинающий программист  26 April 2008 21:17
 RE: Подвисает основной поток формы при работе с несколькими threadsCamarada  05 May 2008 11:14
 RE[2]: Подвисает основной поток формы при работе с несколькими threadsНачинающий программист  05 May 2008 13:41
 Подвисает основной поток формы при работе с несколькими threadswebb  24 April 2008 17:44
 Подвисает основной поток формы при работе с несколькими threadsvriadchenko  24 April 2008 17:53
 
Наш Киев

Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта