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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ActiveX в нескольких окнах браузера, Как научить экземпляры общаться? 
:(
    Опции темы
Dimonius
Дата 2.9.2008, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



У меня следующая ситуация. Есть ActiveX Control написанный на C#, установленный на машине пользователя (не на сервере!) и загружаемый в определённую веб страницу. Конрол слушает определённый TCP порт на машине. Так вот, пока страница открыта только в одном окне браузера, то проблем нет. Как только пользователь открывает два и более окна, то разумеется происходит "драка" за порт и все конролы, которые пытаются слушать занятый получают по исключению.

Вопрос в следующем, как организовать так, чтобы в одно время порт прослушивался только одним конролом в одном из окон браузера?

Как бы так, чтобы они могли договариваться, кто слушает порт, а кто "отдыхает". Также не нужно забывать о том, что когда окно со слушающим контролом закрывается, какой-нибудь другой контрол в другом окне должен начать прослушивание.

Думаю копать в сторону событий, но застрял на том, как отправить событие в другое окно браузера, а точнее контролу в другом окне... Проблема...  smile 

P.S. браузер IE
PM MAIL   Вверх
Felan
Дата 3.9.2008, 07:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Думаю лучше сделать синглтон в однопоточных апартаментах. Тогда вообще не надо будет думать ни о чем. Для этого надо немного переделать фабрику, которая создает объект. Получится, что у тебя будет всегда только один объект, который будет маршалится в каждое окно браузера. И не надо будет ничего переключать.

ЗЫЖ Как это будет на C# не знаю. Сам тут недавно. smile


--------------------
// Любая сложная система - это темный лес. Каждый в этом лесу протаптывает свои тропинки, по ним и бегает. Лишь изредка, сходя с них, мы находим много интересного, а порою и страшного.
PM MAIL WWW ICQ   Вверх
Dimonius
Дата 3.9.2008, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Felan, спасибо! Идея понятна, но не знаю как это сделать на C# :( Гуру C# помогите пожалуйста. Копаю информацию в интернете, пока безуспешно... будет что нового сообщу ;)

Это сообщение отредактировал(а) Dimonius - 3.9.2008, 13:24
PM MAIL   Вверх
jonie
Дата 3.9.2008, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



ну вообще классически проблемы гонки за рессурсы решаются путем использования глобальных объектов синхронизации (мьютексы, семафоры, эвенты)...
вообще думаю, что использовать подобное, в случае если не предпологается "два окна" вполне допустимо (с т.з. морали)...
про activeX же надо думать 8-)


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Dimonius
Дата 3.9.2008, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Так вот я думаю и ищу информацию как реализовать глобальную синхронизацию множества instances of ActiveX в пределах одной машины.
Felan предлагает хорошую тему, но я пока не догоняю как её реализовать, может кто подскажет как сделать глобальный синглтон в dll на C#?

Что-то подобное описано здесь, но как ЭТО сделать на C# не знаю :(
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

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

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

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


 




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


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

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