VC线程入门实例

简介:
1. 用MFC AppWizzard(exe) 创建一个project;
2. 在ClassView选项卡下,右键单击project的根目录,在弹出菜单中选择”new class”,然后弹出如下的列表框,在Name中填写CMyThread,Base class:选选择CwinThread,点击”OK”.
clip_image002
3. 线程创建完毕.
4. 为线程类和要调用线程类的类中分别添加3个事件信号
public:
HANDLE m_hStop;
HANDLE m_hStopped;
HANDLE m_hExit;
5. 重载线程类的构造函数,创建一个有3个参数的线程类的构造函数为public,如:
CMyThread (HANDLE hStop,HANDLE hStopped,HANDLE hExit);
6. 在要调用此线程类的类中初始化事件信号和线程,如:
m_hStop = CreateEvent(NULL,true,false,NULL);
m_hStopped = CreateEvent(NULL,true,false,NULL);
m_hExit = CreateEvent(NULL,true,false,NULL);
m_pThread = new CTestThread(m_hStop,m_hStopped,m_hExit);
7. 为线程类和要调用线程类的类中分别添加3个事件信号
public:
HANDLE m_hStop;
HANDLE m_hStopped;
HANDLE m_hExit;
8. 重写线程类的虚函数run();如:
int CMyThread::Run()
{
CString str;
for(int n=0;;n++)//一个死循环
{
DWORD dw = WaitForSingleObject(m_hStop,0);//等待停止信号
if(dw==WAIT_OBJECT_0)
break;
str.Format("%d",n);
m_pMainWnd->PostMessage(WM_TEST,(WPARAM)(str.operator LPCTSTR()),0);
Sleep(100);
}
SetEvent(m_hStopped);//付出关闭线程的信号
return CWinThread::Run();
}
9. 在需要调用此线程类的地方,声明线程类的指针,并调用CreateThread()如下所示:
CMyThread* pMyThread = new CMyThread();
pMyThread ->CreateThread();
10. 重写线程类的ExitInstance()函数,发出关闭信号事件,如:
int CTestThread::ExitInstance()
{
SetEvent(m_hExit);
return CWinThread::ExitInstance();
}
11.线程结束.


本文转自jazka 51CTO博客,原文链接:http://blog.51cto.com/jazka/196967,如需转载请自行联系原作者
相关文章
|
5月前
|
监控 安全 算法
Thread入门与线程方法详解及多线程安全
Thread入门与线程方法详解及多线程安全
21 0
|
3月前
|
数据处理
多线程与并发编程【线程对象锁、死锁及解决方案、线程并发协作、生产者与消费者模式】(四)-全面详解(学习总结---从入门到深化)
多线程与并发编程【线程对象锁、死锁及解决方案、线程并发协作、生产者与消费者模式】(四)-全面详解(学习总结---从入门到深化)
43 1
|
3月前
|
设计模式 监控 安全
多线程设计模式【多线程上下文设计模式、Guarded Suspension 设计模式、 Latch 设计模式】(二)-全面详解(学习总结---从入门到深化)
多线程设计模式【多线程上下文设计模式、Guarded Suspension 设计模式、 Latch 设计模式】(二)-全面详解(学习总结---从入门到深化)
62 0
|
3月前
|
算法 小程序 Java
多线程与并发编程【多线程与并发编程、 进程、线程的区别、 线程的创建】(一)-全面详解(学习总结---从入门到深化)
多线程与并发编程【多线程与并发编程、 进程、线程的区别、 线程的创建】(一)-全面详解(学习总结---从入门到深化)
42 1
|
2天前
|
安全 调度
多线程入门
多线程入门
|
3月前
|
设计模式 安全 Java
多线程设计模式【线程安全、 Future 设计模式、Master-Worker 设计模式 】(一)-全面详解(学习总结---从入门到深化)
多线程设计模式【线程安全、 Future 设计模式、Master-Worker 设计模式 】(一)-全面详解(学习总结---从入门到深化)
28 0
|
3月前
|
Java 数据安全/隐私保护 块存储
多线程与并发编程【守护线程、线程同步】(三)-全面详解(学习总结---从入门到深化)
多线程与并发编程【守护线程、线程同步】(三)-全面详解(学习总结---从入门到深化)
38 1
|
3月前
|
Java 调度
多线程与并发编程【线程休眠、线程让步、线程联合、判断线程是否存活】(二)-全面详解(学习总结---从入门到深化)
多线程与并发编程【线程休眠、线程让步、线程联合、判断线程是否存活】(二)-全面详解(学习总结---从入门到深化)
31 1
|
9月前
|
Java 数据库连接 调度
线程池概念简单入门
线程池概念简单入门
|
5月前
|
Linux 数据库 数据安全/隐私保护
C++实战-Linux多线程(入门到精通)(三)
C++实战-Linux多线程(入门到精通)(三)
32 0