先贴下代码。。#include <iostream>
#include <windows.h>
using namespace std;
#define HIGHEST_THREAD 0x00
#define ABOVE_AVE_THREAD 0x3F
#define NORMAL_THREAD 0x7F
#define BELOW_AVE_THREAD 0xBF
#define LOWEST_THREAD 0xFF
HANDLE _hThread[5];
void ThreadProc (DWORD *ThreadArg);
main(){
int i;
DWORD ThreadID[5];
static DWORD ThreadArg[5] = {HIGHEST_THREAD, // 0x00
ABOVE_AVE_THREAD, // 0x3F
NORMAL_THREAD, // 0x7F
BELOW_AVE_THREAD, // 0xBF
LOWEST_THREAD // 0xFF
};
for(i=0; i<5; i++)
_hThread[i] = CreateThread(NULL,
0,
(LPTHREAD_START_ROUTINE)ThreadProc,
&ThreadArg[i],
0,
&ThreadID[i]); SetThreadPriority(_hThread[0], THREAD_PRIORITY_HIGHEST);
SetThreadPriority(_hThread[1], THREAD_PRIORITY_ABOVE_NORMAL);
SetThreadPriority(_hThread[2], THREAD_PRIORITY_NORMAL);
SetThreadPriority(_hThread[3], THREAD_PRIORITY_BELOW_NORMAL);
SetThreadPriority(_hThread[4], THREAD_PRIORITY_LOWEST);
for(i=0;i<5;i++){
ResumeThread(_hThread[i]);
}}
void ThreadProc (DWORD *ThreadArg)
{
int j=0,i;
if(*ThreadArg==HIGHEST_THREAD){
for(j=0;j<100;j++){
cout<<'1';
for(i=0;i<1000;i++){}
}
}
if(*ThreadArg==ABOVE_AVE_THREAD){
for(j=0;j<100;j++){
cout<<'2';
for(i=0;i<1000;i++){}
}
}
}
为什么我明明是循环了100次,当是输出是还是只输出了几个数而已?
#include <windows.h>
using namespace std;
#define HIGHEST_THREAD 0x00
#define ABOVE_AVE_THREAD 0x3F
#define NORMAL_THREAD 0x7F
#define BELOW_AVE_THREAD 0xBF
#define LOWEST_THREAD 0xFF
HANDLE _hThread[5];
void ThreadProc (DWORD *ThreadArg);
main(){
int i;
DWORD ThreadID[5];
static DWORD ThreadArg[5] = {HIGHEST_THREAD, // 0x00
ABOVE_AVE_THREAD, // 0x3F
NORMAL_THREAD, // 0x7F
BELOW_AVE_THREAD, // 0xBF
LOWEST_THREAD // 0xFF
};
for(i=0; i<5; i++)
_hThread[i] = CreateThread(NULL,
0,
(LPTHREAD_START_ROUTINE)ThreadProc,
&ThreadArg[i],
0,
&ThreadID[i]); SetThreadPriority(_hThread[0], THREAD_PRIORITY_HIGHEST);
SetThreadPriority(_hThread[1], THREAD_PRIORITY_ABOVE_NORMAL);
SetThreadPriority(_hThread[2], THREAD_PRIORITY_NORMAL);
SetThreadPriority(_hThread[3], THREAD_PRIORITY_BELOW_NORMAL);
SetThreadPriority(_hThread[4], THREAD_PRIORITY_LOWEST);
for(i=0;i<5;i++){
ResumeThread(_hThread[i]);
}}
void ThreadProc (DWORD *ThreadArg)
{
int j=0,i;
if(*ThreadArg==HIGHEST_THREAD){
for(j=0;j<100;j++){
cout<<'1';
for(i=0;i<1000;i++){}
}
}
if(*ThreadArg==ABOVE_AVE_THREAD){
for(j=0;j<100;j++){
cout<<'2';
for(i=0;i<1000;i++){}
}
}
}
为什么我明明是循环了100次,当是输出是还是只输出了几个数而已?
解决方案 »
- MFC解析XML
- VS2008中,运行win32控制台程序,怎么输出的DOS窗口会自动消失?
- 初次使用COM啊,出现了这个问题啊! VC中报错"unexpected end of file while looking for precompiled header directive".
- VC制作屏保
- 关于cmenu popup的问题
- 关于VC++ IDE的一个问题
- 如何使程序像NAV那样在kernel级别运行?
- OICQ的密码究竟是怎么被抓下来的,救命!
- Creport 用GetItemData 怎么获取选中行的数据
- 菜鸟提问:要用mciSendString()函数用加什么头文件呢?谢谢!答对立即给分。
- DLL设置主窗口中List Control控件
- 自适应窗口大小的问题
main(){
......
for(i=0;i <5;i++){
ResumeThread(_hThread[i]);
}
Sleep(5000); //等5秒看看
}
main(){
int i;
DWORD ThreadID[5];
static DWORD ThreadArg[5] = {HIGHEST_THREAD, // 0x00
ABOVE_AVE_THREAD, // 0x3F
NORMAL_THREAD, // 0x7F
BELOW_AVE_THREAD, // 0xBF
LOWEST_THREAD // 0xFF
};
for(i=0; i <5; i++)
_hThread[i] = CreateThread(NULL,
0,
(LPTHREAD_START_ROUTINE)ThreadProc,
&ThreadArg[i],
0,
&ThreadID[i]); SetThreadPriority(_hThread[0], THREAD_PRIORITY_HIGHEST);
SetThreadPriority(_hThread[1], THREAD_PRIORITY_ABOVE_NORMAL);
SetThreadPriority(_hThread[2], THREAD_PRIORITY_NORMAL);
SetThreadPriority(_hThread[3], THREAD_PRIORITY_BELOW_NORMAL);
SetThreadPriority(_hThread[4], THREAD_PRIORITY_LOWEST);
for(i=0;i <5;i++){
ResumeThread(_hThread[i]);
} while(1)
{
Sleep(1000);
}
}