powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Новый поток или как быть ?
7 сообщений из 7, страница 1 из 1
Новый поток или как быть ?
    #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
Новый поток или как быть ?
    #32493184
Tracer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если сообщения обрабатываются так долго, то конечно лучше в новом потоке
...
Рейтинг: 0 / 0
Новый поток или как быть ?
    #32493192
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если есть возможность, то лучше пусть клиенты у себя заводят сред на обработку и сразу отпускают функцию события. Что лишний раз сервер нагружать? :)
Да и функционально проще, когда несколько различных клиентов с одним дополнительным средом, чем один сервер с различным числом средов.
...
Рейтинг: 0 / 0
Новый поток или как быть ?
    #32493245
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если саму реализацию
Send() переделать ???

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

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


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



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

прокатит ?


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


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