CreateThread的用法及在Qt等GUI开发中使用CreateThread的一些技巧

Qt中有自己的多线程工具QThread,但是每次都需要继承QThread实现一个自己的类,然后重载其中的run()成员函数,工作量比较大。有的时候只需要执行一个运行时间长的函数来更新GUI及后台的一些数据,如果直接写在GUI更新所在的主线程中,就会容易导致线程假死。因此,对于运行时间比较长的代码,我们需要创建新的线程来执行它们。使用QThread是一种方法,另外一种,对于Windows平台下的开发,可以用Windows api里的CreateThread函数。

CreateThread的一个简单例子如下:

//最简单的创建多线程实例  
#include <stdio.h>  
#include <windows.h>  
//子线程函数  
DWORD WINAPI ThreadFun(LPVOID pM)  
{  
    printf("子线程的线程ID号为:%d\n子线程输出Hello World\n", GetCurrentThreadId());  
    return 0;  
}  
//主函数,所谓主函数其实就是主线程执行的函数。  
int main()  
{  
    printf("     最简单的创建多线程实例\n");  
    printf(" -- by MoreWindows( http://blog.csdn.net/MoreWindows ) --\n\n");  
  
    HANDLE handle = CreateThread(NULL, 0, ThreadFun, NULL, 0, NULL);  
    WaitForSingleObject(handle, INFINITE);  
    return 0;  
}  

下面来细讲下代码中的一些函数

第一个 CreateThread

函数功能:创建线程

函数原型:

HANDLEWINAPICreateThread(

  LPSECURITY_ATTRIBUTESlpThreadAttributes,

  SIZE_TdwStackSize,

  LPTHREAD_START_ROUTINElpStartAddress,

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值