C#窗体间高速传递数据,求思路! 数据缓存c#窗体间传递数据tcp 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 A form里定义一个静态公共变量tempB form直接用A.temp 想要不丢失任何一个包,你就不能只传递一个变量,然后想怎么实时去取B本来就不该直接访问缓存,而是A将解析好的数据放到一个变量里供B读取如果想不丢,不要用一个变量,而是用队列(LIST或ArrayList),B取到里面的数据后就清空,A就只负责往里Add两个线程操作要加锁. 把A的数据放到一个自动增长的queue里,B 去取就是了A不需要自己维护一个缓冲区 如果你想让B 显示的是那种比较实时的,而且想减少缓存的话,可以试试吧B的显示时间注册用事件注册到A中,A在接收到数据后,可以处理一下,在可控的条件下调用B 的显示事件,这样B 完全不用自己去读取数据 自己去计算,自己维护自己的数据并且还要知道A都接收过什么数据,最难过的是A使用的缓存还不安全。 由于各类型的数据比较多,我就是把他们分类放到dictionary里,然后B定时去调用A.dictionary。问题是A如何通知B来取数据或者B定时自己来取? 如果数据很多呢,类型多,岂不是需要很多queue?A中接受的是多个单片机的数据,开多个线程分别去接收,每个单片机接受多个类型的数据。所以不太好。还有别的办法吗?谢谢! 先装箱,变成object类型,然后压入队列,B取出来之后拆箱而不是每种类型单独定义队列 因为接收到的是二进制数据,我需要转变为十进制。数据量比较大。1秒接收187个数据包,1个数据包4000多个点。我在A中分好了类,到B中直接显示,就不用在B中处理了,减少B的内存占用,便于B进行其他操作。你的意思是都放到B中在处理? 并且A中是接收多个单片机数据。开了多个线程。有多个dictionary,然后复制到一个dictionary再供B去调 我是把dictionary<>类型的公共变量设为A的属性,然后由B去调。“静态公共变量,可以直接放到一个公共的类里去定义”是让B去调公共类吗?怎么弄,有简单的例子吗? 因为接收到的是二进制数据,我需要转变为十进制->二进制,十进制,最终在内存里其实都是二进制,只不过转字符串显示的时候用不同格式转,跟数据本身没有任何关系减少B的内存占用->什么是内存占用?你定义了个队列或数组来存数据,这个数据就占用内存.而计算,只占用CPU而且CPU对于这种计算,是非常快的,比起你通信需要等待的时间,可以忽略不计你到底在哪个线程里运算,其实没什么区别. 取数据窗体把数据放到公共的list中,显示窗体多线程去取了操作显示。 意思是,变量可以放到公共类里,而不是放到窗体A中比如放到program里,所有窗体都可以访问,这样A和B不互相依赖 意思是,变量可以放到公共类里,而不是放到窗体A中比如放到program里,所有窗体都可以访问,这样A和B不互相依赖静态公共变量无所谓放哪里,只要你知道具体地址就行 关于IDE反射的问题 C# 数据库程序运行完之后再次运行时,上次的数据库问什么没了? 请教:模式窗口先隐藏,显示下一个窗口时,主窗口会被覆盖 这种情况合理吗? 怎样同时打开多个Console窗口 image转换byte[]问题,高人请进,赐教!!!!!急求啊!!!! 怎样调用父类的父类的保护方法? 在DataGrid中怎么可以得到一列中一个字段的值??? 快捷键的问题????????????????????? 为什么会这样(控件中的枚举) XmlSerial序列化的问题 急急急!!后台数据库取值,然后调用js添加行,并且给添加的行赋值,怎么实现啊。(可加分)
B本来就不该直接访问缓存,而是A将解析好的数据放到一个变量里供B读取
如果想不丢,不要用一个变量,而是用队列(LIST或ArrayList),B取到里面的数据后就清空,A就只负责往里Add
两个线程操作要加锁.
如果数据很多呢,类型多,岂不是需要很多queue?A中接受的是多个单片机的数据,开多个线程分别去接收,每个单片机接受多个类型的数据。所以不太好。还有别的办法吗?谢谢!
而不是每种类型单独定义队列
我是把dictionary<>类型的公共变量设为A的属性,然后由B去调。“静态公共变量,可以直接放到一个公共的类里去定义”是让B去调公共类吗?怎么弄,有简单的例子吗?
二进制,十进制,最终在内存里其实都是二进制,只不过转字符串显示的时候用不同格式转,跟数据本身没有任何关系减少B的内存占用->
什么是内存占用?你定义了个队列或数组来存数据,这个数据就占用内存.而计算,只占用CPU而且CPU对于这种计算,是非常快的,比起你通信需要等待的时间,可以忽略不计
你到底在哪个线程里运算,其实没什么区别.
比如放到program里,所有窗体都可以访问,这样A和B不互相依赖
比如放到program里,所有窗体都可以访问,这样A和B不互相依赖静态公共变量无所谓放哪里,只要你知道具体地址就行