在问了这个问题并且显然难倒了人们之后,这个想法怎么样 - 我可以将 C# 应用程序的缓冲区提供给 C++ dll,然后在 C# 中进行计时事件,只需将缓冲区的内容复制出来吗?这样,我避免了显然发生的回调调用引起的任何延迟。这会起作用,还是编组会阻止这种缓冲区访问?或者我是否必须进入不安全模式,如果我这样做或不这样做,让它工作的神奇词是什么?
回顾另一个问题:
- 我有一个用 C++ 编写的驱动程序和一个用 C# 编写的应用程序。
- 我需要以预览方式从驱动程序获取数据。
- C++ 应用程序与 C++ dll 交互很好;C# 应用程序在复制数据时有很大的延迟。
- 延迟似乎不是由 C# 端的发布/调试差异引起的
- 我需要绕过延迟。这个提议的缓冲方案能奏效吗?C# 应用程序可以从 C++ dll 写入的缓冲区中消耗,还是我需要做其他事情?