windows线程学习 5

创建两个线程对象,然后另其交替进行执行

#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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值