Как узнать, что выполнение метода обратного вызова завершено - PullRequest
0 голосов
/ 25 декабря 2010

Я использую VC ++ DLL из нашего приложения C #.В DLL есть метод, который вызывал метод обратного вызова .... Перед завершением выполнения обратного вызова метода ... управление входит в программу C # .... MY 1 Вопрос в порядке?

Но янужен вызов метода из нашего приложения C # после успешного завершения метода обратного вызова в DLL.

MY 2 Вопрос в том, как узнать, что вызываемый метод обратного вызова полностью выполнен?

Iя пытаюсь с помощью A Переменной, сохраняющей внутри метода обратного вызова, назначить, значение "1" и в нашем приложении C #, используя цикл while, проверяя значение этой переменной для 1. После этого я положил метод C # .....

НО ЭТОТ Подход не работает нормально

1 Ответ

0 голосов
/ 25 декабря 2010

Все это звучит немного беспорядочно, но я не знаю, чего ты пытаешься достичь, поэтому я не могу сказать тебе, что все в порядке.

Вот идея дляВаш второй вопрос: метод в c ++, который вызывается из c #, может вызвать метод, который вызывает обратный вызов, и затем WaitForSingleObject (), ожидающий вызова функции Even (создайте дескриптор Event, используя CreateEvent ()).

Функция обратного вызова может делать все, что она делает, и в конце вы можете установить SetEvent () на событие, ожидаемое исходным потоком.SetEvent () освободит исходный поток.

Убедитесь, что вы всегда используете SetEvent () в функции обратного вызова, иначе ваш поток застрянет!

Проверьте:http://msdn.microsoft.com/en-us/library/ms686360%28v=VS.85%29.aspx для функций синхронизации.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...