Задав этот вопрос и, видимо, поставив людей в тупик, как насчет этого? Могу ли я передать буфер из приложения C # в dll C ++, а затем получить событие синхронизации в C #, просто скопировать содержимое буфера вышло? Таким образом, я избегаю любых задержек, вызванных обратным вызовом, которые, очевидно, происходят. Будет ли это работать, или маршаллинг будет препятствовать такому доступу к буферу? Или я должен был бы перейти в небезопасный режим, и если я это сделаю или нет, какие бы волшебные слова заставили его работать?
Напомним из этого другого вопроса:
- У меня есть драйвер, написанный на C ++, и приложение, написанное на C #.
- Мне нужно получить данные из драйвера в стиле предварительного просмотра.
- Приложения C ++ прекрасно взаимодействуют с DLL C ++; Приложение C # имеет большую задержку для копирования данных.
- Задержка, по-видимому, не вызвана различиями в выпуске / отладке на стороне C #
- Мне нужно обойти задержку. Может ли эта предложенная схема буфера работать? Может ли приложение C # потреблять из буфера, записанного в DLL C ++, или мне нужно сделать что-то еще?