C++线程 AfxBeginThread函数
我在一个基于对话框的MFC程序中使用AfxBeginThread函数创建了一个工作线程来防止对话框假死但是我发现与直接响应的做法相比创建线程后计算的速度下降了很多使得程序...
我在一个基于对话框的MFC程序中使用AfxBeginThread函数创建了一个工作线程来防止对话框假死
但是 我发现 与直接响应的做法相比 创建线程后计算的速度下降了很多
使得程序处理数据速度变慢了
提高线程优先级效果也不明显
不知道这是我程序的问题 还是本来用线程函数就有这缺点
请高手帮忙解答一下。。。。
部分代码
class CEncryptionDlg : public CDialog
{
// Construction
public:
void Work();//工作函数 有大量计算
static UINT WorkThread( LPVOID pParam );//线程入口函数
...
};
按键按下后响应函数
void CEncryptionDlg::OnButton2Do()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
AfxBeginThread(WorkThread,(LPVOID)this,THREAD_PRIORITY_HIGHEST);
}
线程入口函数实现
UINT CEncryptionDlg::WorkThread(LPVOID pParam)
{
((CEncryptionDlg*)pParam)->Work();
return 0;
} 展开
但是 我发现 与直接响应的做法相比 创建线程后计算的速度下降了很多
使得程序处理数据速度变慢了
提高线程优先级效果也不明显
不知道这是我程序的问题 还是本来用线程函数就有这缺点
请高手帮忙解答一下。。。。
部分代码
class CEncryptionDlg : public CDialog
{
// Construction
public:
void Work();//工作函数 有大量计算
static UINT WorkThread( LPVOID pParam );//线程入口函数
...
};
按键按下后响应函数
void CEncryptionDlg::OnButton2Do()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
AfxBeginThread(WorkThread,(LPVOID)this,THREAD_PRIORITY_HIGHEST);
}
线程入口函数实现
UINT CEncryptionDlg::WorkThread(LPVOID pParam)
{
((CEncryptionDlg*)pParam)->Work();
return 0;
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询