现用Sleep函数来延时,期间如果要关闭应用程序,该怎么办?谢谢!
解决方案 »
- 求助:SDI拆分视图的问题
- IE的文件菜单-》发送邮件页面,这个功能如何实现?
- NetFileClose 返回很大的一个数字
- [Windows Platform SDK]如何用命令行来编译产生一个DLL文件(不想用VC来生成,太麻烦)??
- 如何在对话框上现实gif图片?急!!!
- 数据库查询问题,很奇怪
- 如何 实现 重新释放 IP,获取IP的功能 ?谢谢了
- 有谁看过“设计visual stadio风格的界面的源代码”?
- CreateDIBSection函数的使用?在线。。。
- 如何填充一个不规则的图形??
- 我有DELPHI和VB的基础,应学VC还是C#好?
- 小弟想写个邮件收到程序。需要些什么技术,高手进来给些意见。(VC)
也可以开新线程或其它进程来中止(关闭)本进程。
用CWinThread* AfxBeginThread( AFX_THREADPROC pfnThreadProc, LPVOID pParam, int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL );
开新工作线程来做事,
这样你就可以用线程调度函数DWORD ResumeThread(
HANDLE hThread // identifies thread to restart
);
DWORD SuspendThread(
HANDLE hThread // handle to the thread
);
BOOL TerminateThread(
HANDLE hThread, // handle to the thread
DWORD dwExitCode // exit code for the thread
);
等函数来控制你的工作线程了。这比起用SetTimer设定时器,在OnTimer中检查结果(不用SLEEP)实现,代码更好理解一些。
这样UI就不会宕掉了------------------
May you succeed!
--------------------------
Delay(int t)//t延时的时间
{ MSG msg;
t+=GetCurrentTime();
while(GetCurrentTime()<t)
{
if(PeekMessage(&msg,NULL,NULL,NULL,PM_REMOVE))
{TranslateMessage(&msg); DispatchMessage(&msg);}
}
}