Query: 发送文件过程中的取消操作问题
我用MFC做一个基于Dialog的简单应用,description fowllow:
首先让用户add一些文件到ListBox中,然后用户点击发送按钮开始发送文件,在发送过程中
用户可以Click取消按钮停止发送(只能点击取消,别的按钮disable)。
My Problem:
如果我不用multi thread,好像用户就无法点击取消(或者说,必须在所有文件发送结束后才能响应取消,这样就没有意义了),或者那位高手有什么别的方法
如果用添加一个额外的thread,用它来发送文件。在发送前后和发送中必须对这个dialog进行一些操作(如disable和enable一些按钮,更新正在发送文件的信息)。于是我把这个dialog的指针传给那个thread,但是在那个线程中操作那个dialog是,出现了一些Assert Error。
Who of the superiors can give me some advise or resolvent?
Thanks everyone!
[解决办法]
估计你是把文件中的所有数据读出来了一起发送的,如果文件数据比较大
你可以连续读固定大小的文件再发送,如2048的buf,然后在线程中检查取消
后返回的标志位停止发送
再:dialog的操作可以发送消息
[解决办法]
MsgWaitForMultipleObjects