首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择.Net技术实现对单个USB设备的多路访问

选择.Net技术实现对单个USB设备的多路访问
EN

Stack Overflow用户
提问于 2011-10-16 03:44:24
回答 2查看 652关注 0票数 2

我有一个应用程序,它目前有三个模块/层;一个GUI,一个逻辑和计算层,以及一个提供对USB设备及其数据的访问的层(下面是USB驱动程序,但这不是我们源代码的一部分)。USB设备是一次只能由一个软件实例使用的资源。

这一直运行得很好,但现在我们想让用户在同一个USB设备上运行应用程序的多个实例。因此,现在我们必须在软件实例之间共享最低层(访问USB-device) (因为不能共享USB-driver )。你可以看到我想要创建一个系统范围的最低层的单例...

哪些.Net技术或模式最适合作为此问题的解决方案?

我们使用的是.Net 4、WPF和C#。

编辑:与USB设备的通信需要包括硬件校准在内的连接过程,这实际上需要一些时间(秒)。因此,连接和断开每个呼叫将不是一个选项。对于性能问题,我需要连接一次,然后保持该连接打开。

EN

回答 2

Stack Overflow用户

发布于 2011-10-16 04:16:47

您需要了解如何使用Mutex。控制对代码的USB部分的访问,以便只有一个互斥锁的持有者可以使用它。

票数 1
EN

Stack Overflow用户

发布于 2011-10-16 13:49:09

只使用一个直接访问USB设备的进程-例如,此进程可以是Windows服务。所有应用程序都与这一单一进程通信,而不是直接与USB设备通信...

为了与其他进程通信,您可以使用任何进程间通信技术,但是如果所有进程都在同一台机器/系统上,那么我建议您结合使用Mutexshared memory (通过MemoryMappedFile),因为这是最快的进程间通信机制……

如果性能不是一个大问题,那么使用WCF,因为它为您提供了一个很好的接口,并且如果需要的话,可以允许通过LAN访问。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7780219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档