backgroundworker执行久后,里面调用函数的处理速度会变慢,如何调整?
黎大 2018-04-20 07:08:52 背景及问题:
1、winform应用程序。
2、实时大量数据写入,因此后台调用多个backgroundworker对数据进行处理。
3、定时器扫描写入目录,非空后针对每一个子目录处理(子目录中是大量文件,每个文件的处理函数都有try,为防止单个文件处理时间过长,试用task并配置了cancellationToken,超时取消),每个子目录分配一个backgroundworker,每个backgroundworker在处理完子目录中的文件后删除这些文件。
4、刚开始运行这个程序的时候一切都还正常,处理速度挺快,单机每小时处理能力能够达到100GB左右,但是backgroundworker的处理效率会逐渐明显降低,降低的症状会在一天左右显现,日志显示,目录中大量文件不能够及时的处理,被取消处理。
这个问题怎么样才能够解决呢?是backgroundworker的固有问题,还是我业务流程设计的问题呢?
求各位大神指点。谢谢。