为什么我建立的多线程老是说我Access Violation

qq_30519181 2016-04-05 05:33:53

多线程的函数,但是每次都说我Access Violation


static UINT ThreadFun1(LPVOID pParam) //线程函数
{
UINT u=0;
CRect rt(99,99,501,501);
int index;
CMultithreadsView* pView=(CMultithreadsView*)pParam;
CDC* myDC=pView->GetDC();
myDC->MoveTo(pView->point[0]);
for(index=0;index<360;)
{
myDC->LineTo(pView->point[index]);
Sleep(10);
index++;
}
int x=3;
return u;
}

这是线程函数,我调试了一下,发现错误是myDC->LineTo(pView->point[index]);。说我非法访问,但是我明明都建立了呀。有没有大神可以指导一下。
...全文
176 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2016-04-07
  • 打赏
  • 举报
回复
有没有越界? GetDC 要配对的 ReleaseDC
用户 昵称 2016-04-07
  • 打赏
  • 举报
回复
你可以试试传dc进入线程。
赵4老师 2016-04-07
  • 打赏
  • 举报
回复
Multiple Threads in the User Interface http://msdn.microsoft.com/zh-cn/library/ms810439.aspx
孤客天涯 2016-04-05
  • 打赏
  • 举报
回复
线程中不要直接操作UI,改成PostMessage,由主程序处理

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧