用于从硬件设备流式传输数据的异步API

Mui*_*uis 7 c# api dll asynchronous interface

我正在用C#编写一个库,但我需要使它异步.通常,您公开一组DLL函数,它们接受输入参数,并在完成时返回一个值.但是我怎样才能创建一个库函数(可以从C++/Delphi/Etc中调用),它在开始输入的同时已经开始流回输出?

我现在看到的唯一解决方案是使用套接字/管道/等进行通信,而不是DLL调用.

有人有一个例子如何使用普通的DLL调用吗?

Yah*_*hia 0

根据OP的注释,调用应用程序将音频发送到DLL,DLL通过某些USB接口发送音频,DLL从麦克风接口捕获一些音频,并且需要在应用程序发送音频时将捕获的音频发送回应用程序音频到 DLL 等

基于此以及调用可以用不同的语言编写的事实,我看到了一些通信渠道的选项:

  • TCP/IP(取决于“桌面防火墙设置”等。这可能会出现问题!)
  • 管道
  • 带有事件/事件处理程序的 COM 对象
  • 带有回调的 DLL,尽管这对于所有语言来说有点困难
  • 具有全局互斥体的共享内存(可以通过从 DLL 中提供返回指针和互斥体名称的“设置”函数来缓解消费应用程序的问题)