首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C#中读取2ms以下的序列化数据

在C#中读取2ms以下的序列化数据
EN

Stack Overflow用户
提问于 2016-03-24 21:04:49
回答 1查看 634关注 0票数 0

我需要在一个循环中每2毫秒接收3个字符。我使用的是SerialPort.Read(),但是读取传入数据需要5到6毫秒。有可能做到这一点吗?非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-25 02:57:45

您可能需要调用C++,https://stackoverflow.com/a/15795522/67566中的串口

然后你可以从C#,https://msdn.microsoft.com/en-us/library/ms235281.aspx调用它

我希望这样做会更快,但是从C++ -> C#获取数据的速度会慢一些,而且2-3ms的窗口非常小。

您可以在这段时间内从C++获得数据,但您可能需要缓冲它,所以我会在每个数据块上加上一个时间戳,当您从C#调用它时,您可能需要返回多个片段,然后处理它们。

在C++ DLL中,您将希望有一个单独的线程从串口读取。

您将希望使用thread类,https://msdn.microsoft.com/en-us/library/hh920601.aspx,并在创建之后分离它。

最后,您需要使用线程安全队列,这样您就可以查看这两个链接并选择您最喜欢的一个:

https://juanchopanzacpp.wordpress.com/2013/02/26/concurrent-queue-c11/

C++11 thread-safe queue

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

https://stackoverflow.com/questions/36209961

复制
相关文章

相似问题

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