Конференция "Corba" » IDispatch и Потоки
 
  • Gerda (16.07.07 16:01) [0]
    В потоке 1 есть IDispatch и делается CoMarshalInterThreadInterfaceInStream
    во 2-м потоке
    CoGetInterfaceAndReleaseStream и т.д.
    но поскольку CoGetInterfaceAndReleaseStream освобождает поток
    нельзя повторно использовать методы Idispatch.

    Как сделать, чтобы во 2-ьм потоке постоянно можно было бы работать
    с IDispatch первого потока
  • Сергей М. © (16.07.07 16:19) [1]

    > поскольку CoGetInterfaceAndReleaseStream освобождает поток
    > нельзя повторно использовать методы Idispatch


    Любопытное утверждение ..
  • Gerda (16.07.07 16:25) [2]
    Почему?
    окончание CoGetInterfaceAndReleaseStream
    четко об этом говорит
  • Сергей М. © (16.07.07 16:32) [3]
    ReleaseStream говорит лишь о разрушении маршал-потока, но не о разрушении объекта.
  • Gerda (16.07.07 16:35) [4]
    О разрушении обьекта не говорилось.
    Поскольку маршал-поток разрушен во 2-м потоке,
    как повторно в нем использовать IDispatch из первого потока
  • umbra © (16.07.07 16:40) [5]

    > как повторно в нем использовать IDispatch из первого потока

    что значит "повторно"? небольшое количество кода с пояснениями прояснило бы ситуацию.
  • Gerda (16.07.07 16:50) [6]
    Поток 1;
    var v : IDispatch;
        fStream : pointer; // общая для 2-х потоков
    CoMarshalInterThreadInterfaceInStream(IDispatch,V as IUnknown,IStream (fStream));

    Поток 2
    var pObject : IDispatch;
    наступает событие №1
    GetInterfaceAndReleaseStream(IStream (fStream), IDispatch, pObject)
    pObject.Metod1
    маршал-поток fStream разрушен
    но поток № 2 не завершился
    наступает событие №2, что делать?
  • Gerda (16.07.07 17:05) [7]
    Что не понятно?
  • SlymRO © (17.07.07 05:30) [8]
    наступает событие №2, что делать?
    pObject.Metod1
  • SlymRO © (17.07.07 05:31) [9]
    Поток 2
    var pObject : IDispatch;
    наступает событие №1
    GetInterfaceAndReleaseStream(IStream (fStream), IDispatch, pObject)
    маршал-поток fStream разрушен
    pObject.Metod1
    pObject.Metod2
    pObject.Metod3
    pObject.Metod4
  • gerda (17.07.07 09:18) [10]
    всем СПАСИБО
 
Конференция "Corba" » IDispatch и Потоки
Есть новые Нет новых   [134431   +8][b:0][p:0]