UWP 服务器 - 进程间通信 - 技术选择

问题描述 投票:0回答:0

我们有一个 UWP(Microsoft Store 分布式)应用程序,我们的客户希望通过他的软件进行控制。主要目标是客户可以控制应用程序(就好像用户会直接与之交互一样)并从应用程序中获取实时数据(每 ≈100 毫秒)。

客户的软件和我们的 UWP 应用程序将在同一台 Windows 10 PC 上运行。我们的应用程序将在后台运行,其用户界面对用户隐藏。

客户的软件可以是Win32 app,也可以是UWP app,尚未定义。

我已经阅读了有关 UWP 应用程序可以执行 进程间通信 的不同方式或“技术”,但很难掌握每种方式的优缺点。

乍一看,AppServices 似乎是一个很好的解决方案,因为它看起来有据可查,同时支持 Win32 应用程序和 UWP 应用程序,并且似乎最适合 UWP 应用程序存在的限制一个沙箱。另一方面,Stefan Wick MSFT 的以下评论警告我 AppServices 的速度性能,这将违背实时通信要求。

在提到的评论中,提到了 COM 作为需要实时通信的替代方式。我从来没有使用过COM,所以我没有太多信息。但经过一些阅读后,我可以将我的发现总结为:它需要比 AppServices 更多的工作来实现,并且有一个有限的 COM 对象子集可以在 UWP 上使用,同时保持应用程序 Microsoft Store 友好。

我的主要问题是:

  • Stefan Wick 提到的 AppServices 的“速度性能”有多重要?对于频率为 10Hz 的通信是否至关重要?
  • 什么样的 COM 对象可用于在同一台 PC 上运行的两个应用程序之间传递字符串(或作为字符串的序列化对象)?该 COM 对象是否在 UWP 上可用的有限 COM 对象子集中?
  • 还有其他我没有看到的实现上述目标的方法吗?
c# winapi uwp com ipc
© www.soinside.com 2019 - 2024. All rights reserved.