在我的应用程序中,我有一个模式对话框,其中包含大约 20 个不同的组合框,它们绑定到数据库中的某些字段。数据库很大,在加载对话框时,我必须从数据库中加载所有组合框。所以我设置了 20 个线程(每个组合框 1 个)。
一切正常,但仅当用户在线程运行时使用关闭或取消按钮或确定按钮关闭对话框时才会出现问题;在这种情况下,应用程序崩溃。
我也试图过早地终止线程,但这无济于事。这是线程终止代码
if(m_iNoOfThreadsCompleted != m_iTotalThreads)
{
for(int i = 0; i < m_iTotalThreads - 1; i++)
{
if (m_threads[i] != NULL)
{
GetExitCodeThread(m_threads[i]->m_hThread, &exit_code);
if(exit_code == STILL_ACTIVE)
CloseHandle(m_threads[i]->m_hThread);
}
if(m_iNoOfThreadsCompleted == m_iTotalThreads)
break;
}
}
问题是什么?还是我需要使用更好的方法?