线程优先级等级描述如下;
idle      (最低)    THREAD_PRIORITY_IDLE
LOWEST  低    THREAD_PRIORITY_LOWEST
BELOW   低于标准    THREAD_PRIORITY_BELOW_NORMAL
NORMAL(标准)    THREAD_PRIORITY_NORMAL
ABOVE    高于标准    THREAD_PRIORITY_ABOVE_NORMAL
HIGHEST (高)    THREAD_PRIORITY_HIGHEST
CRITICAL(最高)    THREAD_PRIORITY_TIME_CRITICAL

Win7,VC6,新建一个对话框工程;添加7个进度条控件;其每个控件的ID为IDC_PROGRESSx;

添加一个按钮;添加按钮的单击函数;

对话框Cpp文件头部添加如下代码;

static UINT g_uCount1 = 0;
static UINT g_uCount2 = 0;
static UINT g_uCount3 = 0;
static UINT g_uCount4 = 0;          // 各个线程各自的循环计数
static UINT g_uCount5 = 0;
static UINT g_uCount6 = 0;
static UINT g_uCount7 = 0;CProgressCtrl* g_ptrProgress1 = NULL;
CProgressCtrl* g_ptrProgress2 = NULL;
CProgressCtrl* g_ptrProgress3 = NULL;     //各个进度条的指针
CProgressCtrl* g_ptrProgress4 = NULL;
CProgressCtrl* g_ptrProgress5 = NULL;
CProgressCtrl* g_ptrProgress6 = NULL;
CProgressCtrl* g_ptrProgress7 = NULL;UINT Thread1(LPVOID)
{while (g_uCount1 < 100000000 ){g_uCount1++;if (g_uCount1 % 10000000 == 0){if (g_ptrProgress1){g_ptrProgress1->SetPos(g_uCount1/1000000);}    }   }return 0;
}UINT Thread2(LPVOID)
{while (g_uCount2 < 100000000 ){g_uCount2++;if (g_uCount2 % 10000000 == 0){if (g_ptrProgress2){g_ptrProgress2->SetPos(g_uCount2/1000000);}    }   }return 0;
}UINT Thread3(LPVOID)
{while (g_uCount3 < 100000000 ){g_uCount3++;if (g_uCount3 % 10000000 == 0){if (g_ptrProgress3){g_ptrProgress3->SetPos(g_uCount3/1000000);}    }   }return 0;
}UINT Thread4(LPVOID)
{while (g_uCount4 < 100000000 ){g_uCount4++;if (g_uCount4 % 10000000 == 0){if (g_ptrProgress4){g_ptrProgress4->SetPos(g_uCount4/1000000);}    }   }return 0;
}UINT Thread5(LPVOID)
{while (g_uCount5 < 100000000 ){g_uCount5++;if (g_uCount5 % 10000000 == 0){if (g_ptrProgress5){g_ptrProgress5->SetPos(g_uCount5/1000000);}    }   }return 0;
}UINT Thread6(LPVOID)
{while (g_uCount6 < 100000000 ){g_uCount6++;if (g_uCount6 % 10000000 == 0){if (g_ptrProgress6){g_ptrProgress6->SetPos(g_uCount6/1000000);}    }   }return 0;
}UINT Thread7(LPVOID)
{while (g_uCount7 < 100000000 ){g_uCount7++;if (g_uCount7 % 10000000 == 0){if (g_ptrProgress7){g_ptrProgress7->SetPos(g_uCount7/1000000);}    }   }return 0;
}

代码分别是:每个线程各自使用的循环计数,每个进度条的指针定义,7个线程函数;  在每个线程函数根据计数设置不同的进度条的值;

在对话框的 OnInitDialog() 成员函数,在    “// TODO: Add extra initialization here”    这句之后,添加如下代码;根据进度条控件的ID获取其指针;

        g_ptrProgress1 = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS1);g_ptrProgress2 = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS2);g_ptrProgress3 = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS3);g_ptrProgress4 = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS4);g_ptrProgress5 = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS5);g_ptrProgress6 = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS6);g_ptrProgress7 = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS7);

在单击处理函数,使用AfxBeginThread按照不同线程优先级来启动线程;AfxBeginThread函数的第一个参数是创建的线程的执行函数;

void CThrpriDlg::OnGo()
{// TODO: Add your control notification handler code here//创建7个不同优先级别的线程AfxBeginThread(Thread1,NULL,THREAD_PRIORITY_TIME_CRITICAL); AfxBeginThread(Thread2,NULL,THREAD_PRIORITY_HIGHEST);   AfxBeginThread(Thread3,NULL,THREAD_PRIORITY_ABOVE_NORMAL);  AfxBeginThread(Thread4,NULL,THREAD_PRIORITY_NORMAL);    AfxBeginThread(Thread5,NULL,THREAD_PRIORITY_BELOW_NORMAL);  AfxBeginThread(Thread6,NULL,THREAD_PRIORITY_LOWEST);    AfxBeginThread(Thread7,NULL,THREAD_PRIORITY_IDLE);
}

运行如下图;开始,

运行到某个时刻,

结束;

MFC线程优先级程序图示相关推荐

  1. 多线程赛马程序Java_Java线程优先级示例-在各优先级线程间“赛马”

    Java 虚拟机在调度各线程运行时,并非每个线程的运行机会相同,调度机制根据各线程的优先级调度各线程.因而,优先级高的线程获得的运行时间就多,优先级低的线程获得的运行时间就少.本例演示了不同优先级的线 ...

  2. [改善Java代码]线程优先级只使用三个等级

    线程的优先级(priority)决定了线程获得CPU运行的机会,优先级越高获得的运行机会越大,优先级越低获得的机会越小.Java的线程有10个级别(准确的说是11个级别,级别为0的线程是JVM,应用程 ...

  3. 【C++ 语言】线程 ( 线程创建方法 | 线程标识符 | 线程属性 | 线程属性初始化 | 线程属性销毁 | 分离线程 | 线程调度策略 | 线程优先级 | 线程等待 )

    文章目录 I 线程创建方法 II 线程执行函数 III 线程标识符 IV 线程属性 V 线程属性 1 ( 分离线程 | 非分离线程 ) VI 线程属性 2 ( 线程调度策略 ) VII 线程属性 3 ...

  4. python 测试 多线程 _thread和threading模块 线程同步,线程优先级队列

    文章目录 python 多线程简介 Python中使用线程的两种方式 1.函数式 示例 2.线程模块 示例 线程同步 示例 线程优先级队列( Queue)[暂时没用到,没仔细看] 示例 其他 thre ...

  5. java多线程优先级的方法_Java多线程以及线程优先级

    文章目录 1 继承Thread类多线程的实现获取和设置线程名称线程优先级 2 实现Runnable接口3 实现Callable接口4 使用线程池 1 继承Thread类 多线程的实现 实现多线程只需要 ...

  6. Android线程优先级设置方法技巧

    对于Android平台上的线程优先级设置来说可以处理很多并发线程的阻塞问题, 比如很多无关紧要的线程会占用大量的CPU时间,虽然通过了MultiThread来解决慢速I/O但是合理分配优先级对于并发编 ...

  7. Java 多线程:线程优先级

    1 优先级取值范围 Java 线程优先级使用 1 ~ 10 的整数表示: 最低优先级 1:Thread.MIN_PRIORITY 最高优先级 10:Thread.MAX_PRIORITY 普通优先级 ...

  8. linux优先级队列,Python3 线程优先级队列( Queue)

    导读 Python 的 Queue 模块中提供了同步的.线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列 PriorityQueue. ...

  9. ceSetThreadPriority设置线程优先级~!

    ceSetThreadPriority 一直採用SetThreadPriority,结果今天发帖询问线程时间问题,才突然顿悟...发现SetThreadPriority只设置248-255,也就是说就 ...

最新文章

  1. Linux常用的网络命令笔记
  2. asp.net 6中的mini api和mvc api性能对比
  3. Windows上的Java线程CPU分析
  4. Java进阶 | Proxy动态代理机制详解
  5. keras padding_GAN整体思路以及使用Keras搭建DCGAN
  6. 来自百度的71款开源项目
  7. 20170829,记我第一次电面
  8. 181023词霸有道扇贝每日一句
  9. Win11更新后电脑没有声音,声卡驱动失效,卸载重装依然无效
  10. 关闭键盘按键声音和使用筛选键
  11. HTML+CSS项目练习(8)-发光文字动画
  12. iOS 15 导航栏(Navigation)变白(导航栏不见)
  13. 大赛来袭 | 千万项目商机+超40W大赛奖金,快来报名吧!
  14. 中国人工智能领域企业分类(附未来企业排行)
  15. C语言实验——用*号输出字母C的图案
  16. WPF将控件保存为图片
  17. 笔试题目---描述在浏览器中敲入一个网址并按下回车后所发生的事情
  18. 分布式项目中 nginx(FastFDS) 上传文件大小限制
  19. 四六级听力考试高频词汇分类记忆-职场工作类
  20. 【搜集】AVI解码器下载(AE导入avi时报错的解决办法)

热门文章

  1. 母亲,我怎么让你等了那么久(转载)
  2. 有关子矩阵最大累加和的总结
  3. hive分区用2个字段有何限制_关于Hive使用动态分区插入数据详解
  4. ueditor百度编辑器常见报错的解决方法
  5. C# 学习笔记(17)操作SQL Server 上
  6. C# Excel导出超出65536行报错 Invalid row number (65536) outside allowable range (0..65535)解决方法
  7. Factorial Trailing Zeroes
  8. CalcBackProject函数
  9. 图像去噪 使用dct变换进行去噪
  10. Sympy计算结果带参数的方程组