大家好
小弟使用backgroundworker
用button_click启动dowork
Dowork while循环重复接收从MCU传送回来的资料
每接收到一串资料后
便会使用progress report
将资料传到Progress Changed
做资料处理及chart绘图
在dowork内有设置一段时间等待progress changed处理完成
但整个程式执行之后
一开始progress changed处理的时间很短
(我有放一个计时器在progress changed里面)
但随着执行次数变多
Progress changed处理的时间也越来越长
直到progress changed处理时间超过我在dowork设定的等待时间后
整个程式就当掉不跑
图也卡住
而在诊断工具处理序内存字段
程式一开始偶尔出现GC
随着次数增加GC出现频率越来越高
到最后超级密集 程式也跟着当掉
想请问是否我在程式的安排上
能不能等到progress changed完全执行完毕后
再回到dowork while循环里面重复执行撷取资料的动作?
或者我的程序安排本身就有错误?
麻烦各位先进给予指教