gpt4 book ai didi

c# - 最佳实践?等到收到或在收到时引发事件

转载 作者:太空宇宙 更新时间:2023-11-03 16:50:54 24 4
gpt4 key购买 nike

首先,我要感谢社区。你最近一直在大力支持!通常我什至不需要问问题,因为它们已经存在了。现在我有一个与代码没有直接关系但与编程本身有关的问题。

我正在使用 FTDI 芯片和 C# 编写通信协议(protocol),在该协议(protocol)中,PC 应用程序充当主设备(将发送请求),还有一个从设备将响应它们,不是立即,可能是几个毫秒,但无论如何,需要一些时间。我陷入了一个概念/哲学代码设计问题。

发送请求后,我应该立即询问答案(同时检查超时)还是应该持续监控输入(由 BackgroundWorker 提供支持)并在收到数据输入后引发事件?你会推荐什么,你的经验是什么。我应该考虑哪些因素来做出选择?

我从来没有研究过编程本身的软件设计,所以我认为我缺乏这方面的基础知识,但这是我正在从事的个人项目,我当然希望你们能提供一些反馈/建议。

谢谢!

最佳答案

在这种情况下,我的首选解决方案是以异步模式发出请求(这样您会被完成时触发的事件回调),并使用标准 .Net 机制实现异步超时,该机制调用如果奴隶似乎没有反应,你就回来。这样您只需启动请求和计时器,然后就可以继续做更多的工作,而不需要任何其他线程来处理结果。

您必须确保使用锁定机制干净地处理并发超时和响应到达,以便您确定是超时还是处理响应。

尽量避免轮询和输入监控,除非您的从属 API 不允许确定性地生成响应事件。

关于c# - 最佳实践?等到收到或在收到时引发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4024346/

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