087 - 问,进度通知方式

087 - 问,进度通知方式

最近项目中要做文件的加密与解密。

实现进度通知时,想到了以下这些。

进度通知方式一:同步回调     

这种方式效率极差。进度的展示会阻塞加解密。

087 - 问,进度通知方式_第1张图片

进度通知方式二:间隔询问      

效率好。

主线程加解密。询问线程间隔一段时间去读取主线程进度。询问线程执行回调。

当然这里面在单个文件加密的开始和结束还是要加锁。

087 - 问,进度通知方式_第2张图片

进度通知方式三:?

应该还有更好的方式……


1、主线程和询问线程间使用队列进行通讯:主线程将进度信息放入队列中;询问线程从队列中取得信息;队列操作需要线程间同步,但等待时间非常小。
2、如果是Windows平台,主线程和询问线程间直接通过PostMessage()通讯

你可能感兴趣的:(087 - 问,进度通知方式)