gpt4 book ai didi

c# - 事件触发的速度有多快?

转载 作者:行者123 更新时间:2023-11-30 20:39:42 25 4
gpt4 key购买 nike

我正在开发一个与硬件配置一起工作的应用程序。

硬件通过应用程序中的串行端口连接到应用程序,并将以快速(~2-4 μs)的速度从硬件向应用程序发送数据。

我的计划是在父窗体中通过串行端口接收数据,然后通过事件将此数据发送到专门用于显示它的用户控件。

虽然我对直接将它传输到单个表单没有问题,但我不熟悉事件,并且不确定事件是否会足够快地触发以顺利处理数据。

我的问题是:

  • 事件的触发速度有多快?它是基于硬件,还是有软件限制?
  • 使用这种方法处理数据有哪些缺点?
  • 除了通过事件传递数据之外,还有更好的替代方法吗?
  • 以这种速度处理数据完全可行吗?

最佳答案

  1. 事件非常快(委托(delegate)调用几乎和直接调用一样便宜)
  2. 为了平滑,您每秒只需要与帧速率(大约 60 赫兹)一样多的批处理
  3. 根据您的串行端口供应商和设置,缓冲可能会导致相当长的延迟。
  4. 以“这个”速率(每秒 500,000 个样本)处理数据很可能是可行的,具体取决于您需要进行多少处理。鉴于您的采样率和显示更新率之间存在四个数量级的差异,值得在进行屏幕更新时对它们进行批处理,而不是尝试每秒重绘 500,000 次。
  5. 没有传统的“串口”可以每秒传输 500,000 个样本,即使是基于 USB 的奇特串口也是如此。 (我见过的最好的 UART 是每秒 3 Mbps = 300,000 字节,而你的每个数据包可能都超过一个字节)
  6. 如果位时间为 2-4 微秒,则您无需担心。在为您的程序生成事件之前,串行端口将缓冲数百位。

关于c# - 事件触发的速度有多快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34057592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com