Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.19;
Скачать: CL | DM;

Вниз

Опрос свех инстанций com сервера.   Найти похожие ветки 

 
Erik ©   (2003-06-05 10:43) [0]

Как это правильно сделать? Я просто создаю гловальнуй переменую типа List: TThreadSafeList. А в RemoteDataModuleCreate
FMarshaler := TInterThreadMarshaler.Create(IDispatch);
List.Add(Sender);
fUserID := List.Count;
FMarshaler - это TInterThreadMarshaler работает коректно, делает маршалинг интерфейсу для доступа из другово треда. В него записывается CallBack интерфейс для вызова клиента сервером.
Далее создается thread с WaitableTimer и в execute при событии от таймера запускает TestEvent.
procedure TRealAlarm.TestEvent;
Var Count, i: Integer;
Server: TProtocol;
begin
Count := List.Count-1;
List.BeginRead;
Try
for I := 0 to Count do begin
Server := List[i];
try
Server.TestActive(False);
except
Server.ComObject._Release;
end;
end;
NewEvent(stSendEvent);
finally
uProtocol.List.EndRead;
end;
NewEvent(stDone);
BeginRead использует TMultiReadExclusiveWriteSynchronizer и вызывает тотже метод. При любом обращении к List происходит BeginRead.
Ошибка заключается что при очередном вызове метода BeginRead или EndRead вылетает exception "member not found".

Может у меня неправильна идея в корне?


 
Erik ©   (2003-06-05 13:26) [1]

Member not found теперь возникает всегда!!!!!!!!!!!!!!!!
Незнаю в чем дело. При попытке соеденится с сервером ......



Страницы: 1 вся ветка

Текущий архив: 2003.06.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
1-60193
Xeon
2003-06-04 16:41
2003.06.19
Реестр


1-60219
BDRON
2003-06-05 14:48
2003.06.19
Кириллица в заголовке


3-60045
LeReve
2003-05-27 20:45
2003.06.19
как НОРМАЛЬНО создать поле MEMO (ДБ) в DatabaseDesktop?


14-60366
ghossst
2003-05-30 14:29
2003.06.19
Внимание!Интересный проект


1-60154
Yanis
2003-06-06 22:11
2003.06.19
Почему этот код вызывает ошибку?