关于线程的问题请帮帮忙 对话框当然没发动啦,你代码里面WaitForMultipleObjects调用在一直等待LogicThread线程的退出(对话框无法处理其他消息),只有LogicThread线程退出后你的StartMainServer调用才完成 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用这个WaitForSingleObject也是一样的效果那是不是要再创建一个对话框,然后再那里执行才行,把这个监听主线程放到那个窗口里运行是唯一的办法? 可以再开一个线程执行StartMainServer,这样对话框就会有响应 请问是说这样么void CAAXDlg::OnBnClickedBtnStart(){ ...... 一些窗口初始化的代码 创建个线程去执行StartMainServer();createthread(xxx,startmainserver,......)这样吗 .....} usingMsgWaitForMultiObjectsin your main process(thread) 请问是说这样么void CAAXDlg::OnBnClickedBtnStart(){ ...... 一些窗口初始化的代码 创建个线程去执行StartMainServer();createthread(xxx,startmainserver,......)这样吗 .....}恩就这样 我试试MsgWaitForMultipleObjectsvcayi() 这样好像不行,主线程还是要等待,不等待的话,子线程也都跟着关闭了 yjqx老兄我加了 DWORD exitCode = 0; bool quit = false; while(!quit) { MSG msg; DWORD result; result = MsgWaitForMultipleObjects(1,&hThread,false,INFINITE,QS_ALLINPUT); if(result == WAIT_OBJECT_0 + 1) { while(PeekMessage(&msg,NULL,0,0,PM_REMOVE)) { if(msg.message == WM_QUIT) { quit = true; TerminateThread(hThread,exitCode); break; } TranslateMessage(&msg); DispatchMessage(&msg); } } else { if(WaitForSingleObject(hThread,INFINITE)==WAIT_OBJECT_0) { CloseHandle(hThread); hThread = 0; } } }不过还是不行,CPU占用直线上升,呵呵.能给提个建议不. 你原来的代码不变,然后用一个新的线程来执行StartMainServer函数也不行吗? 图像处理中的多视窗问题 报表类实际上是重写了打印类? 1 如何实现几个应用程序之间的数据共享? who can help me?thanks 请教VC关于获取数据库中表信息 如何将int:123转换为"123"???????? 一个简单的问题:float类型的四舍五入的函数是什么?谢谢大家! 为什么我的VC编辑器不再提示? 多线程通信问题!急! 怎么多显示4个线程啊 vc中有没有这样的现成字符串类?
那是不是要再创建一个对话框,然后再那里执行才行,把这个监听主线程放到那个窗口里运行是唯一的办法?
void CAAXDlg::OnBnClickedBtnStart()
{
......
一些窗口初始化的代码
创建个线程去执行StartMainServer();
createthread(xxx,startmainserver,......)这样吗
.....}
MsgWaitForMultiObjects
in your main process(thread)
void CAAXDlg::OnBnClickedBtnStart()
{
......
一些窗口初始化的代码
创建个线程去执行StartMainServer();
createthread(xxx,startmainserver,......)这样吗
.....}
恩就这样
我加了
DWORD exitCode = 0;
bool quit = false;
while(!quit)
{
MSG msg;
DWORD result;
result = MsgWaitForMultipleObjects(1,&hThread,false,INFINITE,QS_ALLINPUT);
if(result == WAIT_OBJECT_0 + 1)
{
while(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
if(msg.message == WM_QUIT)
{
quit = true;
TerminateThread(hThread,exitCode);
break;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
else
{
if(WaitForSingleObject(hThread,INFINITE)==WAIT_OBJECT_0)
{
CloseHandle(hThread);
hThread = 0;
}
}
}
不过还是不行,CPU占用直线上升,呵呵.
能给提个建议不.