⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 theade~2.h

📁 本书所附光盘的内容包含了开发实例的所有程序源码
💻 H
字号:
// TheadExp2Dlg.h : 头文件
//
#include <afxmt.h>
//全局变量
//临界区对象
static CCriticalSection g_Cs;
//互斥区对象
static CMutex g_Mt;
//信号对象
static CSemaphore g_Sp(1,1);
//将要被两个线程访问的数据
static UINT Data=0;
static UINT OldData=0;
//循环次数
static UINT cnt=0;
//对话框窗口句柄,用于辅助线程同对话框主进程通讯
static HWND hDlg;
//事件对象,用于终止第一个线程
static CEvent g_EndTh1;
//事件对象,用于终止第二个线程
static CEvent g_EndTh2;
//记录用户选择的同步方式(使用信号对象、互斥区或临界区对象)
static UINT g_Sel=0;
//标识第一个线程是否结束
static BOOL g_Th1End=TRUE;
//标识第二个线程是否结束
static BOOL g_Th2End=TRUE;
//全局函数
//用于存储数据的函数,该函数被第一个线程所使用
static void SetData(UINT dat);
//用于读取数据的函数,该函数被第二个线程所使用
static UINT GetData(UINT dat);
//用于写数据的线程,即第一个线程的线程回调函数
UINT ThreadProcWt(LPVOID param);
//用于读数据的线程,即第二个线程的线程回调函数
UINT ThreadProcRd(LPVOID param);

#pragma once
// CTheadExp2Dlg 对话框
class CTheadExp2Dlg : public CDialog
{
// 构造
public:
	CTheadExp2Dlg(CWnd* pParent = NULL);	// 标准构造函数
	void EnableSelection(BOOL end);
	
// 对话框数据
	enum { IDD = IDD_THEADEXP2_DIALOG };

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV 支持


// 实现
protected:
	HICON m_hIcon;

	// 生成的消息映射函数
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	DECLARE_MESSAGE_MAP()
public:
	CButton m_BeginTh1;
	CButton m_EndTh1;
	CButton m_BeginTh2;
	CButton m_EndTh2;


	afx_msg void OnBnClickedThread1();
	afx_msg void OnBnClickedEndThread1();
	afx_msg void OnBnClickedThread2();
	afx_msg void OnBnClickedEndThread2();

	
	afx_msg void OnBnClickedRadioMutex();
	afx_msg void OnBnClickedRadioSemaphores();
	afx_msg void OnBnClickedRadioCritical();
	afx_msg void OnBnClickedExit();

};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -