Re[3]: Небольшая ошибочка
От: Amor Россия  
Дата: 28.06.04 07:26
Оценка:
Было вот так:

A>
A>     // Совершить вызов функции в потоке с ожиданием результата.
A>     template< class BinObj >
A>     typename BinObj::result_type Call_Wait( BinObj * pCall )
A>     {
A>          HANDLE hEvent = CreateEvent( NULL, FALSE, FALSE, NULL ) ;
A>          pCall->AddRef() ;
A>          PostThreadMessage( dwThrId, WM_CALL, ( WPARAM )hEvent, ( LPARAM ) ( ICall * ) & pCall ) ;
A>          WaitForSingleObject( hEvent, INFINITE ) ;
A>          CloseHandle( hEvent ) ;
A>          typename BinObj::result_type res = rCall.m_result ;
A>          rCall.Release() ;
A>          return  res ;
A>     }
A>


Надо так:
     template< class BinObj >
     typename BinObj::result_type Call_Wait( BinObj * pCall )
     {
          HANDLE hEvent = CreateEvent( NULL, FALSE, FALSE, NULL ) ;
          pCall->AddRef() ;
          PostThreadMessage( dwThrId, WM_CALL, ( WPARAM )hEvent, ( LPARAM ) ( ICall * ) & pCall ) ;
          WaitForSingleObject( hEvent, INFINITE ) ;
          CloseHandle( hEvent ) ;
          typename BinObj::result_type res = pCall->m_result ;
          pCall->Release() ;
          return  res ;
     }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.