Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Новый поток или как быть ? / 7 сообщений из 7, страница 1 из 1
22.04.2004, 14:23
    #32491842
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новый поток или как быть ?
Есть сервер DCOM написанный на Buildere C++ 6

вызываю у него метод Send(...)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
STDMETHODIMP TSQLEventServiseImpl::Send(BSTR Str_uid, BSTR Str, int int_0,
  int int_1)
{
   HRESULT hres = S_OK;
   try
   {
     TCOMCriticalSection::Lock Lock(CS); 
     Fire_OnSend(&Str_uid,&Str,&int_0,&int_1); 
   }
   catch(Exception &e)
   {
     hres = Error(e.Message.c_str(),IID_ISQLEventServise,E_FAIL);
   }
   catch(...)
   {
     hres = Error(_T( "Критическая ошибка !" ),IID_ISQLEventServise,E_UNEXPECTED);
   }
   return hres;
}


Но пока клиент(ы) не обработает(ют) сообщение, управление тому клиенту который вызвал
этот метод (Send) не передается, а если клиент(ы) будут обрабатывать сообщение час и больше , как то это положение можно исправить ?



i_i
(';')
(V),(V),,
JS
...
Рейтинг: 0 / 0
23.04.2004, 09:37
    #32493184
Tracer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новый поток или как быть ?
Если сообщения обрабатываются так долго, то конечно лучше в новом потоке
...
Рейтинг: 0 / 0
23.04.2004, 09:41
    #32493192
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новый поток или как быть ?
А если есть возможность, то лучше пусть клиенты у себя заводят сред на обработку и сразу отпускают функцию события. Что лишний раз сервер нагружать? :)
Да и функционально проще, когда несколько различных клиентов с одним дополнительным средом, чем один сервер с различным числом средов.
...
Рейтинг: 0 / 0
23.04.2004, 10:04
    #32493245
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новый поток или как быть ?
А если саму реализацию
Send() переделать ???

мне бы желательно как можно быстрее передпть кправление ,
тому клиенту который вызвал метод send(...)

надо подумать как сие реализовать :)
пока не знама .


i_i
(';')
(V),(V),,
JS
...
Рейтинг: 0 / 0
23.04.2004, 10:19
    #32493294
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новый поток или как быть ?
Ну или пусть клиент, который зовёт Send, зовёт его в отдельном среде. Тогда он получит управление ещё до того, как Send вызовется :)
...
Рейтинг: 0 / 0
23.04.2004, 10:22
    #32493306
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новый поток или как быть ?
Ага и как это реализовать в MSSQL ??? :)



i_i
(';')
(V),(V),,
JS
...
Рейтинг: 0 / 0
23.04.2004, 10:41
    #32493376
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Новый поток или как быть ?
а если вызвать в новом потоке
Fire_OnSend(&Str_uid,&Str,?_0,?_1);

прокатит ?


i_i
(';')
(V),(V),,
JS
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Новый поток или как быть ? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]