Многопоточность и синхронизация в COM

Тема в разделе "WASM.WIN32", создана пользователем MrMiXeR, 12 сен 2011.

  1. MrMiXeR

    MrMiXeR New Member

    Публикаций:
    0
    Регистрация:
    27 июн 2008
    Сообщения:
    97
    Народ бьюсь уже неделю, не знаю как можно дождаться завершения потоков, созданных в моей программе COM-объектом, естественно ID неизвестны, мьютексы, евенты и семафоры при такой синхронизации курят в сторонке. Неужели ничего нельзя поделать???!!!
     
  2. Ezrah

    Ezrah Member

    Публикаций:
    0
    Регистрация:
    22 мар 2011
    Сообщения:
    411
    Неделю уже бьюсь, не могу решить задачу на графах. MrMiXeR, не подскажете, у неё есть вообще решения?
     
  3. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Тебе стоит рассказать о своей проблеме более детально, иначе мне придётся вспомнить о том, что я модератор.
     
  4. MrMiXeR

    MrMiXeR New Member

    Публикаций:
    0
    Регистрация:
    27 июн 2008
    Сообщения:
    97
    Ну как детально, интерфейс Folder, полученный из ShellDispatch, методом NameSpace, вызывает метод CopyHere, в результате чего создается поток, завершения которого нужно дождаться. Sleep - не вариант, потому что константы - это пустая трата времени процесса. Какие могут быть варианты синхронизации с созданным потоком ?
     
  5. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Не понял, а этот метод что, асинхронный?
    Тогда не знаю, я лично не большой знаток COM.
    Советую задать вопрос здесь, мне кажется, там быстрее.
     
  6. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    В длл мейн ловить все новые потоки, не вариант?
    Перехват создания потока?
     
  7. karabas_barabas

    karabas_barabas Member

    Публикаций:
    0
    Регистрация:
    9 авг 2009
    Сообщения:
    168
    если будет известен Id тредов то можно будет уже применить технику типа OpenThread , waitfor***object , значит твоя задача - узнать id этих тредов - попробуй в направлении - перечислить потоки и по StartAddress потока , определить модуль и там уже определить что за поток, хотя в com тоже не силен.