您的位置:首页 > 数据库

mfc对话框类中多线程

2015-11-11 09:57 218 查看
做数据库的查询和显示,用到多线程。(对话框点击按钮查询,然后列表显示)

1、先定义线程函数

unsigned int __stdcall CDlg::QueryThreadFunc1( LPVOID lParam )
{
CDlg *pThis = reinterpret_cast<CDlg*>( lParam );
pThis->StartOracleQuery();
return 0;
}

这个在头文件中是静态函数:
static unsigned int __stdcall QueryThreadFunc1(LPVOID lParam);

上述代码中,StartOracleQuery()是普通函数,里面是数据查询处理。
2、创建线程

m_hQueryThread是成员变量,HANDLE类型

void CDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
if(!InitDB())
{
return;
}

m_hQueryThread = reinterpret_cast<HANDLE>(::_beginthreadex(NULL, 0, QueryThreadFunc1, reinterpret_cast<void*>(this), CREATE_SUSPENDED, 0));

if (m_hQueryThread != NULL)
{
::ResumeThread(m_hQueryThread);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息