创建两个线程对象,然后另其交替进行执行
#include<stdio.h>
#include<Windows.h>
/// <summary>
///当线程对象启动之后将会调用该函数进行执行
/// </summary>
/// <param name="lpParameter">LPVOID是一个没有类型的指针,也就是说你可以将LPVOID类型的变量赋值给任意类型的指针</param>
/// <returns></returns>
DWORD WINAPI ThreadProc(LPVOID lpParameter) {
int* p =(int *)lpParameter;
for (int i = 0; i < *p; i++)
{
Sleep(500);
printf("Thread---------------------------%d \n", i);
}
return 0;
}
int main(int argc, char* argv[]) {
HANDLE hThread;//创建句柄对象用于实现对线程句柄进行接收
int n;//定义线程对象当中循环次数
n= 10;
hThread=CreateThread(NULL, 0, ThreadProc, &n,0, NULL);
CloseHandle(hThread);//关闭句柄,另内核中当前线程结构的计数器值减1
for (int i = 0; i < 10; i++)
{
Sleep(500);//另当前线程对象进入睡眠状态
printf("----------------%d \n", i);
}
return 0;
}
SuspendThread()函数对象用于将线程挂起,ResumeThread()线程对象用于唤醒被挂起的线程对象。
#include<stdio.h>
#include<Windows.h>
/// <summary>
///当线程对象启动之后将会调用该函数进行执行
/// </summary>
/// <param name="lpParameter">LPVOID是一个没有类型的指针,也就是说你可以将LPVOID类型的变量赋值给任意类型的指针</param>
/// <returns></returns>
DWORD WINAPI ThreadProc(LPVOID lpParameter) {
int* p =(int *)lpParameter;
for (int i = 0; i < *p; i++)
{
Sleep(500);
printf("Thread---------------------------%d \n", i);
}
return 0;
}
int main(int argc, char* argv[]) {
HANDLE hThread;//创建句柄对象用于实现对线程句柄进行接收
int n;//定义线程对象当中循环次数
n= 10;
hThread=CreateThread(NULL, 0, ThreadProc, &n,0, NULL);
Sleep(5000);
SuspendThread(hThread);//另当前进程对象处于挂起状态
Sleep(5000);
ResumeThread(hThread);//唤醒被挂起的进程对象
CloseHandle(hThread);//关闭句柄,另内核中当前线程结构的计数器值减1
return 0;
}