![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
setnull |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 3.7.2007 Репутация: нет Всего: 1 |
Всем восемь…
![]() На сколько я разумею, асинхронная работа System.Net.Sockets.Socket подразумевает под собой многопоточную организацию… Имеется несколько их… Задача простая: по мере возникновения в них всевозможных событий (соединение, прием/отправки данных, разъединение), формировать и отображать в клиентской форме информацию типа “Активных соединений: xxxx принято: xxxx оправлено: xxxx ” Посоветуйте, как организовать синхронизированный доступ к моей форме в такой ситуации, так как как то так ругается мой код: --------------------------- --------------------------- AfterAcceptConection Cross-thread operation not valid: Control 'lbStatus' accessed from a thread other than the thread it was created on. --------------------------- ОК --------------------------- даже если lbStatus залочить ![]() Спасибо!!! |
|||
|
||||
tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 6 Всего: 170 |
к контролам формы нужно обращаться из того потока, в котором они создаются (STAThread атрибут, не зря же он к winform приложениям добавляется)
Поэтому тебе, setnull, нужно из внешнего потока (потока сокета) работать с контролами формы через Invoke() вот неплохая тема, в ту же тему ![]() -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
setnull |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 3.7.2007 Репутация: нет Всего: 1 |
Ого, ниче-се...
Заработало!!! ![]() Только сходу можа уточнить? 1. MSDN орит про Invoke, че This method is not CLS-compliant... В двух словах, если можна, чем это может грозить? Это в смысле, если я захочу мешать # с VB или ++? Или че? 2. Чем будут отличаться два вызова this.Invoke(new EmptyProc(MyProc)); и this.myLabel.Invoke(new EmptyProc(MyProc)); Это на случай если кой-нить поток одарит мою форму компонентами?.. И вообще: 3. как поступают в таких случаях, когда на форме могут быть разнопотоковые компоненты? и4. Наверняка же уже где-то описаны простые формы делегатов, как то EmptyProc() . Де можа глянуть, че б самокат не придумывать?.. Шое сибап... Добавлено через 8 минут и 10 секунд Так а стоп!!! Так а эта STAThread-Invoke модель, она распространяется только на GUI-структуру компонентов? или как?.. Как это пересекается с синхронизацией работы потоков, теорией lockов и т.д?.. Это сообщение отредактировал(а) setnull - 7.7.2007, 18:39 |
|||
|
||||
setnull |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 3.7.2007 Репутация: нет Всего: 1 |
2Модераторы
Люди, это я этот топик поднял в Распределённые приложения и сеть или вы перенесли? Могете пихануть в общие вопросы? |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 2 Всего: 232 |
Могём. Только темка про асинхронные сокеты, а не многопоточность в общем :P
-------------------- ![]() |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |