窗体线程响应:
CWinThread *pThread=AfxBeginThread(RUNTIME_CLASS(CUIThread)); 一切正常。但是在CWinThread *pThread=AfxBeginThread(RUNTIME_CLASS(CUIThread));后加上一些内容就不行了。内容为:
1、对一文本文件的读写操作
2、上传某一个文件到服务器上(SFTP)我本意是想把整个上传的过程在CUIThreadDlg上的进度条和状态框中表示出来。
但是加了1和2功能后,CUIThreadDlg就不再响应,至少没有弹出来显示。求救,谢谢

解决方案 »

  1.   

    估计是CUIThreadDlg 和外面的操作有资源冲突,如都要独占使用某一文件,而你的1,2操作执行的快,先占住了,线程在等待条件,无响应。
    可如下做:
             1 先显示出窗口
             2. 启动线程,执行文件上传操作,
             3. 线程中,回调窗口函数,执行进度条刷新。 
      

  2.   

    老大,我按我的理解写为:
    void CUploadFilesDlg::UploadFatFiles()
    {
    CWinThread *pThreadS=AfxBeginThread(RUNTIME_CLASS(CUploadDisplay)); CWinThread *pThreadD = AfxBeginThread(GetAndUploadFileThread,this);

    }
    不过CUploadDisplay还是没有显示出窗体来,class CUploadDisplay : public CWinThread是这样一个类,主要想实现调用新的窗体显示, 而GetAndUploadFileThread则通过全局变量传递参数给CUploadDisplayDlg窗体实现数据更新。
      

  3.   

    用CreateEvent创建事件对象来同步线程吧