Как обрабатывать COM-события из консольного приложения?

Я использую COM-объект из сторонней библиотеки, которая генерирует периодические события. Когда я использую библиотеку из приложения Winforms, имея объект в качестве члена класса и создавая его в основном потоке формы, все работает. Однако, если я создаю объект из другого потока, Я не получаю никакого события.

Я предполагаю, что мне нужен какой-то цикл событий в том же потоке, который использовался для создания объекта.

Мне нужно использовать этот объект из консольного приложения. Думаю, я мог бы использовать Application.DoEvents, но я бы предпочел не включать пространство имен Winforms в консольное приложение.

Как я могу решить эту проблему?

Обновление 3 (2011-06-15): Производитель наконец ответил. Короче говоря, они говорят, что существует некоторая разница между насосом сообщений, созданным Application.Run, и тем, который создается Thread.Join, но они не знают, в чем эта разница.

Я согласен с ними; был бы очень признателен за любой проливной свет на этот вопрос.

Обновление:

Из комментария Ричарда к ответу mdm: конец ...

Допустим, у меня есть цикл в моем коде, который несколько раз вызывает отладчик rails

def show
    animals = ['dog', 'cat', 'owl', 'tiger']
    for animal in animals
    debugger
    # do something else
end

Предположим, я запустил свой сервер с параметром - debugger , когда эта страница просматривается, отладчик будет останавливаться при каждом запуске цикла.

Я могу набирать cont каждый раз, когда он останавливается, чтобы запрос продолжался, но это утомительно, особенно если мы не говорим о его появлении 4 раза, как в этом примере, но 400. Есть ли способ позволить отладчику продолжить работу без остановки в каждой точке цикла?

В настоящее время я перезапускаю сервер, но это требует времени.

15
задан Yuval Karmi 1 June 2011 в 02:37
поделиться