用户界面线程的问题

kooko1986 2011-01-05 10:12:37
之前做了个下载文件的程序,从远程将本地文件下载过来.当时是有2个线程,一个下载的,一个复制的.因为本地可能有多个文件,不可能全部下到远程这边再一起复制,所以就下载一个复制一个.然后再下载一个(将之前下载的覆盖掉)再复制一个....
而当时为了可以看到当前文件进度,所以复制的时候用的是用户界面线程,上面会显示一共多少个文件,当前下载了多少个文件..
但是这样有个问题,比如文件有好几百个,那么复制的那个线程便会开启几百次..那个显示的窗口就会不停的弹出,关闭,弹出,关闭... 看久了感觉头都晕了..
这里有什么办法让那个提示的窗口一直显示吗?一直到所有文件复制完成后再关闭?
...全文
74 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kooko1986 2011-01-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 pady_pady 的回复:]
因为你是在线程中显示的窗口,所以线程结束就会关闭窗口,除非你这个线程和主线程一样不退出就可以一直显示窗口,
办法就是把窗口在主线程中创建,创建子线程的时候把窗口句柄传递过去。通过自定义消义传递下载进度信息以便在主线程中更新窗口的控件和状态
[/Quote]
恩,我去试试看. 谢谢
kooko1986 2011-01-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 pady_pady 的回复:]
因为你是在线程中显示的窗口,所以线程结束就会关闭窗口,除非你这个线程和主线程一样不退出就可以一直显示窗口,
办法就是把窗口在主线程中创建,创建子线程的时候把窗口句柄传递过去。通过自定义消义传递下载进度信息以便在主线程中更新窗口的控件和状态
[/Quote]


我去试试 谢谢
pady_pady 2011-01-05
  • 打赏
  • 举报
回复
因为你是在线程中显示的窗口,所以线程结束就会关闭窗口,除非你这个线程和主线程一样不退出就可以一直显示窗口,
办法就是把窗口在主线程中创建,创建子线程的时候把窗口句柄传递过去。通过自定义消义传递下载进度信息以便在主线程中更新窗口的控件和状态
Eleven 2011-01-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kooko1986 的回复:]
引用 3 楼 visualeleven 的回复:
你不关闭不就是了


不关闭的话不是越来越多吗?上次试过一次,下面任务栏里面就会有几百个小窗口..
[/Quote]
你始终只是用一个不就行了
kooko1986 2011-01-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 visualeleven 的回复:]
你不关闭不就是了
[/Quote]

不关闭的话不是越来越多吗?上次试过一次,下面任务栏里面就会有几百个小窗口..
Eleven 2011-01-05
  • 打赏
  • 举报
回复
你不关闭不就是了
kooko1986 2011-01-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 healer_kx 的回复:]
CopyFile是个同步操作,另外下载完了,才能copy吧? 这两个操作放到一个线程里面好了。逻辑会简单。
[/Quote]

这样没用吧. 即使放一起里面,还不是要开启很多次,,那么也会显示很多次那个界面.因为文件是下一个复制一个的,不是所有文件下载完成后才一起复制的.
healer_kx 2011-01-05
  • 打赏
  • 举报
回复
CopyFile是个同步操作,另外下载完了,才能copy吧? 这两个操作放到一个线程里面好了。逻辑会简单。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧