MFC中多线程的应用

做项目中涉及到多线程的操作,所以学习了一下MFC中多线程的用法!

包括句柄的定义、初始化,线程函数的定义、初始化,锁的使用。

句柄的定义:

CWinThread* thread1; 

线程函数的定义:

static UINT thread1_func(LPVOID lpParam);

加static表示函数归类本身所有。

锁的定义:

HANDLE hMutex1;//互斥锁

句柄初始化:

thread1 = AfxBeginThread(thread1_func, this, 0, 0, CREATE_SUSPENDED, NULL);
this表示传入this指针,线程可以使用对象数据成员和成员函数。CREATE_SUSPENDED表示以阻塞方式创建线程。

句柄控制线程执行与挂起:

q->thread1->SuspendThread();//线程自己控制自己挂起
thread1->ResumeThread();//恢复线程,主线程控制

锁的使用:

hMutex1 = CreateMutex(NULL, FALSE, NULL);
WaitForSingleObject(q->hMutex1, INFINITE);//等待获得互斥锁
ReleaseMutex(q->hMutex1);    // 释放互斥锁








猜你喜欢

转载自blog.csdn.net/znzxc/article/details/80386085