C#做上位机,接收到的数据边存边显示,数据共享问题怎么解决

C#做上位机,TCP/IP通信,需要接收多块单片机传来的数据,存储数据并显示数据。中间涉及到数据共享的问题,比如接受到的数据一边存、一边显示。如何解决数据共享问题?有好的... C#做上位机,TCP/IP通信,需要接收多块单片机传来的数据,存储数据并显示数据。中间涉及到数据共享的问题,比如接受到的数据一边存、一边显示。如何解决数据共享问题?
有好的思路吗?
可以加、很多分!!!
展开
 我来答
money0_04c351c2
2014-08-06 · TA获得超过4142个赞
知道大有可为答主
回答量:5505
采纳率:49%
帮助的人:1605万
展开全部
像你这种情况,直接定义一个静态的公共数据类就可以了。
单片机通讯可以配置不同的端口,上位机老老实实的每个端口开一个TcpListener。
也可以使用同一个端口,每个下位机自报编号。总之,它们的数据应该区分开。
收数据的进程收到数据后扔进公共类就不用管了。
显示进程用定时器控制,定时检查一下公共数据类,有数据了就显示并删除。
大概如此,难度不大,力气活儿。
更多追问追答
追问
我现在是收到数据后定时去清除。怎么样在清除前把数据调走。如果是定时去检查,那么中间有可能会丢数据,就是还没检查就被清除了,这种情况怎么解决呢
追答
我上面那段话的核心是:要建立一个静态的公关数据类,用来当做数据缓冲池。
收到数据就扔池子里、池子里有数据就进行处理、处理完就把已处理的部分清掉,就这三步。
一郎大神
2014-08-04 · TA获得超过1180个赞
知道小有建树答主
回答量:1033
采纳率:92%
帮助的人:316万
展开全部
应该是数据同步的问题吧
两种方法解决:
1.用异步回调来显示数据
2.用多线程加锁来同步数据的读写。
一般来说关于I/O处理的相关情况用第一种方法比较好
追问
我用的是在窗体A中多线程接受并存储。显示的话是在另一个窗体B中完成的。B窗体调用A中的数据。因为是实时数据,数据很多。在B中用定时器定时调用A中的数据,这样造成A、B数据有可能不同步。  有办法解决窗体间数据传递的好方法吗?
另外您说的第一种方法异步回调有没有简单的例子?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wlj1907
2014-08-08 · 超过76用户采纳过TA的回答
知道小有建树答主
回答量:149
采纳率:0%
帮助的人:34.3万
展开全部
我觉得A接收数据后存储,不用管B,B窗口定时刷新,从你当期最后显示的数据的时间往后取,显示
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
樱桃何晓云
2014-08-07 · TA获得超过151个赞
知道小有建树答主
回答量:222
采纳率:100%
帮助的人:190万
展开全部
个人拙见:放队列中吧;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式