首页 理论教育 VisualC++多线程编程技术

VisualC++多线程编程技术

时间:2023-11-16 理论教育 版权反馈
【摘要】:下面列出了编写辅助线程的基本步骤:用AppWizard生成一个基于对话框的应用程序,工程名为MultiThreadA,其余选项都设置为默认。其实现如程序清单5-1所示。程序清单5-1threadInfo结构定义增加全局线程函数ThreadProc()。程序清单5-2ThreadProc函数的声明和实现注意:threadInfo必须在TheadProc之前定义。对于AfxBeginThread函数,我们使用如下原型:CWinThread* AfxBeginThread;“启动”按钮对应的单击事件处理函数见程序清单5-3。程序清单5-3启动按钮的单击事件处理函数在OnInitDialog函数中初始化数据,见程序清单5-4。

VisualC++多线程编程技术

下面列出了编写辅助线程的基本步骤:

(1)用AppWizard生成一个基于对话框的应用程序,工程名为MultiThreadA,其余选项都设置为默认。

(2)在对话框资源编辑器中,对话框的界面设计如图5-6所示。对话框中控件属性设置见表5-2。

图5-6 对话框界面

表5-2 对话框中控件属性设置

(3)使用ClassWizard将对话框中的IDC_ED_TIME和IDC_PROGRESS1控件映射为对应的两个成员变量m_nSecond和m_ctrlProgress,映射过程如图5-7所示。这样,可以通过变量操作控件。

图5-7 增加两个成员变量

(4)在MultiThreadADlg.h文件中定义threadInfo结构,并在CMultiThreadADlg类中增加成员变量:CWinThread* pThread。其实现如程序清单5-1所示。

程序清单5-1 threadInfo结构定义

(www.xing528.com)

(5)增加全局线程函数ThreadProc()。为方便起见,该函数就定义在CMultiThreadADlg类的实现文件MultiThreadADlg.cpp中,ThreadProc()函数的声明和实现见程序清单5-2。

程序清单5-2 ThreadProc函数的声明和实现

注意:threadInfo必须在TheadProc之前定义。

(6)为“启动”按钮增加单击事件处理函数,在函数中调用AfxBeginThread函数启动辅助线程。对于AfxBeginThread函数,我们使用如下原型:

CWinThread* AfxBeginThread( AFX_THREADPROC pfnThreadProc, LPVOID pParam);

“启动”按钮对应的单击事件处理函数见程序清单5-3。

程序清单5-3 启动按钮的单击事件处理函数

(7)在OnInitDialog函数中初始化数据,见程序清单5-4。

程序清单5-4 OnInitDialog函数

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈