gpt4 book ai didi

c# - SerialPort DataReceived Event 会重复触发吗?

转载 作者:行者123 更新时间:2023-12-02 18:09:47 25 4
gpt4 key购买 nike

假设只要有 100 个字节可用,我就从 SerialPort 读取数据,否则什么也不做。这意味着,串行端口缓冲区中的剩余数据仍然可用。此读取是在 DataReceived 的事件处理程序内完成的。

现在假设出现一种情况,例如 SerilaPort 缓冲区中有 50 个字节,但没有更多数据到来。据我了解,只要有一定数量的字节可用于从缓冲区读取,就会触发 DataReceived 事件。

现在,在给定的场景中,如果我从未读取过这 50 个字节,事件是否会因为这些未读字节的存在而持续激活?

最佳答案

我确实发布了答案(请参阅上面的评论)。它在文档中。 “...当从 SerialPort 对象接收到数据时。”OP 说“如果我从未读取过这 50 个字节,事件是否会因为这些未读字节的存在而被持续激活?”你回答说:“是的,它会一直触发,直到你调用 Read()。”

该事件仅在收到新数据时触发。如果不处理该数据,该数据将不会引发新事件。但是,如果有新数据到达,则会触发一个新事件,然后您可以处理所有数据。

关于c# - SerialPort DataReceived Event 会重复触发吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2844928/

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