c# - 我应该使用线程异步访问连接到 PCI 总线的设备吗?

标签 c# multithreading asynchronous pci

我有一个硬件通过 PCI 总线连接到我的 PC。 我正在通过围绕设备驱动程序的 .NET 包装器访问硬件。

我没有关于设备如何执行 PCI-wise 的任何规范。这就引出了我的第一个问题。

1) 通过 PCI 连接的设备是否保证以特定速度传送数据?

2) 与设备通信时,我希望我的用户界面保持响应。在(线程池)线程中启动与设备的通信是个好主意,还是与访问 PCI 总线的速度相比,与此相关的开销太大?

编辑:
问题重写。反射(reflect)了太多漫长工作日的结束。
删除了线程必须是线程池线程的要求。

最佳答案

一般来说,只要有机会编写没有线程关联的代码,这样做通常是个好主意。这样,当它成为响应性问题时,您可以自由地关闭 UI 线程。使用 Async 方法为此 I/O 设计您的 API 还可以让您的选择以一种良好的方式开放。

如果您不必长时间占用它,那么您所在的线程是线程池线程还是您自己生成的线程似乎无关紧要。如果您可以执行异步 I/O,那么线程池线程应该没问题。

关于c# - 我应该使用线程异步访问连接到 PCI 总线的设备吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14756055/

相关文章:

java - 测试线程数组

android - 来自异步任务的 JSON 和网络操作?

angular - 等待订阅完成

asynchronous - tokio async rust 上的 Yield 是什么意思?

c# - 用数据集填充组合框

c# - 我在 C# 中有两个列表 Found Missed Element count 和 Founded Element Count

c# - 向 Unity 注册类型以使用需要参数数组的构造函数

c# - 结合完整的 URL 和虚拟 URL,就像浏览器一样

java - Cassandra 启动错误,ThreadPriorityPolicy=42

multithreading - 寻求有关线程之间负载平衡的教程和信息