GDI+绘图 c#
操作过程:
1、从硬件中获取数据 解析 存入一个集合中(现在有三种数据,分别存入三个集合中)
2、开三个线程 分别从各个相应的集合中获取数据绘图(绘制三道波形)
出现问题的地方:
经过排除,问题出现在 drawimage()方法上
问题描述:
如果我只绘制一导波形,显示效果还是能接受的,但是,当我同时绘制两道波形时(开启两个线程),两道波形的绘制速度都会降下来很多
问题:
我想问的是,我是分三个线程分别各干各的事 为什么会受影响呢?该怎样处理好呢?
新年第一次发帖,祝各位新年快乐!
------解决方案--------------------咱来帮顶一下
------解决方案--------------------开的线程数跟你的CPU好像也有关系的吧。照你这么说,其实是你画波形耗了很多时间,应该是去优化这方法。
------解决方案--------------------画图几乎不耗费cpu。画图只要ui线程就行了。需要开线程的是你的计算。
------解决方案--------------------上图
------解决方案--------------------那得看绘制波形的工作量大不大,如果计算量很大,不管你分几个线程,CPU处理也是要时间的
------解决方案--------------------我试过画600个点的波形,共三张图,明显比画一张300个点的图慢不少
------解决方案--------------------用WPF啊。都交给GPU在弄了
------解决方案--------------------线程也是程序,所以线程需要占用内存,线程越多占用内存也越多; 多线程需要协调和管理,所以需要CPU时间跟踪线程; 线程之间对共享资源的访问会相互影响,必须解决竞用共享资源的问题; 线程太多会导致控制太复杂,最终可能造成很多Bug。