如何在win32工程里,添加一个用户线程呀? 如何在win32工程里,添加一个用户线程呀?最好详细一些,包括:线程创建,消息循环,等等。有代码最好,小弟谢过了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 win32消息循环只能自己做了,按照一般模式写while循环 beginthreadex自己创建个线程循环 查msdncreatethread()或者beginthreadex() 线程的消息循环怎么写呀??是模仿主线称写就可以吗???while (GetMessage(&msg,NUll,0,0)){ TranslateMessage(&msg); DispatchMessage(&msg);}这样可以吗??? see the following#include <windows.h>#include <stdio.h>#include <conio.h>unsigned long WINAPI Thread(PVOID pvoid);void main(){DWORD dwThreadId;printf("use timer in workthread of console application<masterz>\n"); HANDLE hThread = CreateThread( NULL, // no security attributes 0, // use default stack size Thread, // thread function 0, // argument to thread function 0, // use default creation flags &dwThreadId); DWORD dwwait=WaitForSingleObject(hThread,1000*30);switch(dwwait){case WAIT_ABANDONED:printf("main thread WaitForSingleObject return WAIT_ABANDONED\n");break;case WAIT_OBJECT_0:printf("main thread WaitForSingleObject return WAIT_OBJECT_0\n");break;case WAIT_TIMEOUT:printf("main thread WaitForSingleObject return WAIT_TIMEOUT\n");break;}CloseHandle(hThread);_getch();}unsigned long WINAPI Thread(PVOID pvoid){ MSG msg; PeekMessage(&msg, NULL, WM_USER, WM_USER, PM_NOREMOVE); UINT timerid=SetTimer(NULL,111,3000,NULL); BOOL bRet;int count =0;while( (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0){ if (bRet == -1){// handle the error and possibly exit}elseif(msg.message==WM_TIMER){count++;printf("WM_TIMER in work thread count=%d\n",count);if(count>4)break;}else{TranslateMessage(&msg); DispatchMessage(&msg); }}KillTimer(NULL,timerid);printf("thread end here\n");return 0;} 双缓冲画图的问题、! 请问在IOCP模型下如何建立一条堵塞方式的连接 codehelp的代码版段数据库,谁有,能共享一下吗? 一个http服务器支持断点续传需要特殊配置吗。 ado连接sql server 2000提示“连接数据库失败,未指定的错误 ” MFC里处理消息的一个问题?? 讨论如何实现微软的画图中的直线等问题 编程中遇到的个问题请教。 发个小车游戏给大家看看吧,这两天没事做的 VC哪个函数是将读取的数据写入excel表中 自己添加的垂直滚动条,怎么让他与整个View的长短成比例呢,谢谢! 如何通过WinINet下载未知大小的文件?
自己创建个线程循环
createthread()
或者beginthreadex()
是模仿主线称写就可以吗???while (GetMessage(&msg,NUll,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
这样可以吗???
#include <windows.h>
#include <stdio.h>
#include <conio.h>
unsigned long WINAPI Thread(PVOID pvoid);
void main()
{
DWORD dwThreadId;
printf("use timer in workthread of console application<masterz>\n");
HANDLE hThread = CreateThread(
NULL, // no security attributes
0, // use default stack size
Thread, // thread function
0, // argument to thread function
0, // use default creation flags
&dwThreadId);
DWORD dwwait=WaitForSingleObject(hThread,1000*30);
switch(dwwait)
{
case WAIT_ABANDONED:
printf("main thread WaitForSingleObject return WAIT_ABANDONED\n");
break;
case WAIT_OBJECT_0:
printf("main thread WaitForSingleObject return WAIT_OBJECT_0\n");
break;
case WAIT_TIMEOUT:
printf("main thread WaitForSingleObject return WAIT_TIMEOUT\n");
break;
}
CloseHandle(hThread);
_getch();
}unsigned long WINAPI Thread(PVOID pvoid)
{
MSG msg;
PeekMessage(&msg, NULL, WM_USER, WM_USER, PM_NOREMOVE);
UINT timerid=SetTimer(NULL,111,3000,NULL);
BOOL bRet;
int count =0;
while( (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)
{
if (bRet == -1)
{
// handle the error and possibly exit
}
else
if(msg.message==WM_TIMER)
{
count++;
printf("WM_TIMER in work thread count=%d\n",count);
if(count>4)
break;
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
KillTimer(NULL,timerid);
printf("thread end here\n");
return 0;
}