快救救急吧!!!县城问题.
Eie 2000-04-04 08:53:00 MDI CFormView
我在InitdialogUpdata(CFormView)中初始化一个CListCtrl, 然后用
AfxBeginThread(InsertItems,this)
启动一个线程,在该线程中读文件并将文件数据填入CListCtrl,如下
UINT InsertItems(LPVOID pParam)
{
CMyView *pView=(CMyView *)lParam;
CMyDoc *pDoc =pView->GetDocument();
........//m_pFile已经在Doc的OnOpenDocument中创建并打开
int nLines=pDoc->m_pFile->GetFileLength()/LINE_BUFF_SIZE;
char buff[LINE_BUFF_SIZE];
for(int i=0;i<lines;i++)
{
//读文件并将.数据添入pView->m_List
//
if(::WaitForSingleobject(pView->m_evnCancled,0)==WAIT_OBJECT_0)
break;
}
pView->m_bReadFinished=TRUE;
return 0;
}
因为文件可能很大(1M--10M),所以在没有读完文件,用户电击了窗口的X退出
当前View或退出程序前,应该终止线程,我用下列代码却不行,而且必死无疑:
CMyView::OnDestroy()
{
CFormView::OnDestroy();
if(!this->m_bReadFinished)
this->m_evnCancled.SetEvent();
}
求高手指点迷津....