Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Синхронизация потоков... 
:(
    Опции темы
setnull
  Дата 6.7.2007, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 3.7.2007

Репутация: нет
Всего: 1



Всем восемь… smile

На сколько я разумею, асинхронная работа 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 залочить smile

Спасибо!!!

PM MAIL   Вверх
tol05
Дата 6.7.2007, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 6
Всего: 170



к контролам формы нужно обращаться из того потока, в котором они создаются (STAThread атрибут, не зря же он к winform приложениям добавляется)
Поэтому тебе, setnull, нужно из внешнего потока (потока сокета) работать с контролами формы через Invoke()
вот неплохая тема, в ту же тему smile


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
setnull
Дата 7.7.2007, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 3.7.2007

Репутация: нет
Всего: 1



Ого, ниче-се...
Заработало!!! smile 

Только сходу можа уточнить?

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
PM MAIL   Вверх
setnull
Дата 8.7.2007, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 3.7.2007

Репутация: нет
Всего: 1



2Модераторы

Люди, это я этот топик поднял в Распределённые приложения и сеть  или вы перенесли?

Могете пихануть в общие вопросы?
PM MAIL   Вверх
mr.DUDA
Дата 9.7.2007, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 2
Всего: 232



Могём. Только темка про асинхронные сокеты, а не многопоточность в общем :P


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0664 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.