VC 创建多线程的问题
MFC中创建了一个基于对话框的应用程序.问题1:在button按钮中,创建一个线程,在线程中最终运行完成.把数据发送到界面上的控件上来.这个过程中..如果button按钮...
MFC中创建了一个基于对话框的应用程序.
问题1 :在button按钮中,创建一个线程,在线程中最终运行完成.把数据发送到界面上的控件上来.这个过程中..如果button按钮中不等待线程完成.那么线程就退出了..
问题2:通过别人告知菜单响应函数是主线程. 在菜单响应函数中创建了线程.可以满足我的要求
但是我不知道.那些地方是主线程...能否靠知还有其它的地方创建线程. 展开
问题1 :在button按钮中,创建一个线程,在线程中最终运行完成.把数据发送到界面上的控件上来.这个过程中..如果button按钮中不等待线程完成.那么线程就退出了..
问题2:通过别人告知菜单响应函数是主线程. 在菜单响应函数中创建了线程.可以满足我的要求
但是我不知道.那些地方是主线程...能否靠知还有其它的地方创建线程. 展开
展开全部
mfc编程中你可以暂时理解成默认是单线程(即只有一个主线程)。
随意在任意地方创建了线程都可看做是辅助线程。
线程的一般目的是为了实现同步效果。
那么你在button的响应函数中创建了一个线程,然后就可以不用管了,即不用等待线程完成。因为我们想要求这个新线程可以随着对话框 同时运行的,这样线程即使运算复杂到时运行时间很长(你可以用长时间的循环来模拟),也不会造成对话框假死现象。
当你创建线程时候,可以给线程函数传递一个参数,这个参数你可以把对话框的指针传进去(也就是 this 指针)。当线程完成前,在线程函数里调用这个 对话框指针,进行操作就好。
还有就是你对话框的 button不要用默认按钮,你要新拖个按钮来弄。对话框创建时自带的2个按钮(‘确定’,‘取消’),都有默认的响应函数了,更改也不难,不过不是这里重点,楼主暂时忽视就行。
-----------以下部分只是补充,可以无视,不是重点-------
暂时理解成mfc是一个单线程程序,只要不是你建立的线程,都可以理解成主线程。
但是调试时你会发现系统会自动创建n个辅助线程来帮程序运行,点击查看的话会提示只能显示其汇编代码。也就是说,mfc自带的代码他都是处于主线程上的。
随意在任意地方创建了线程都可看做是辅助线程。
线程的一般目的是为了实现同步效果。
那么你在button的响应函数中创建了一个线程,然后就可以不用管了,即不用等待线程完成。因为我们想要求这个新线程可以随着对话框 同时运行的,这样线程即使运算复杂到时运行时间很长(你可以用长时间的循环来模拟),也不会造成对话框假死现象。
当你创建线程时候,可以给线程函数传递一个参数,这个参数你可以把对话框的指针传进去(也就是 this 指针)。当线程完成前,在线程函数里调用这个 对话框指针,进行操作就好。
还有就是你对话框的 button不要用默认按钮,你要新拖个按钮来弄。对话框创建时自带的2个按钮(‘确定’,‘取消’),都有默认的响应函数了,更改也不难,不过不是这里重点,楼主暂时忽视就行。
-----------以下部分只是补充,可以无视,不是重点-------
暂时理解成mfc是一个单线程程序,只要不是你建立的线程,都可以理解成主线程。
但是调试时你会发现系统会自动创建n个辅助线程来帮程序运行,点击查看的话会提示只能显示其汇编代码。也就是说,mfc自带的代码他都是处于主线程上的。
展开全部
说实话,我没看懂你到底要表达什么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
确实没有看懂
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请您表达清楚自己的想法,好么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询