在线程中可以用主线程传过来的图形空间在界面上画图么
我在界面上放了一个图形控件, 然后应设了一个成员变量, 将之作为参数传给work线程,在work线程中计算数据然后用这个图形控件变量在界面上画图,现在一执行程序就是abornamal program terminate, 追踪了一下,发现是在画图的时候出了问题,那位大侠指点一下,谢谢。
void CPlotDataDlg::OnButton1()
{
pThread = AfxBeginThread(PlotData, (LPVOID)&m_NiGraph, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
pThread->m_bAutoDelete = FALSE;
pThread->ResumeThread();
}
void CPlotDataDlg::OnButton2()
{
SetEvent(gEvent);
delete pThread;
}
UINT PlotData(LPVOID param)
{
int i=0, j=0, k=0;
int datalen = 1001;
CNiReal64Vector vectordata(1001);
DWORD dwRet;
CNiGraph *pGraph = (CNiGraph *)param;
while(TRUE)
{
j=k;
for(i=0; i<datalen; i++)
{
vectordata[i] = sin(double(j));
j++;
}
pGraph->ChartY(vectordata);
dwRet = WaitForSingleObject(gEvent, 1000);
if (dwRet == WAIT_OBJECT_0)
{
break;
}
k++;
}
AfxMessageBox("Thread about to end", MB_OK);
return 0;
}