做一个类似于flashget的工具,同时下载多个文件,
这时用一个ListView显示各个文件下载的状况,同时用户还可能添加或删除列表中的文件
即同时会有很多线程操作ListView,这时程序很容易出问题。
我考虑用线程同步来解决,即使用
EnterCriticalSection(CS);
...
LeaveCriticalSection(CS);
来解决这个问题。
由于网速较快,每一次数据到来时都要更新ListView的显示,如果有几个文件同时下载,那么在更新显示的函数就会因为同步而等待,这会影响文件下载速度,同样,其它对ListView的操作都会影响到文件的下载,因此存在一个效率问题。
我想当数据到来时另外开一个线程来作ListView的更新显示,但这样也会造成更新显示不及时的问题。
大家有没有什么好的办法来解决这些问题?若有一个好一点的解决方案,敬请赐教,谢谢。