使用ui线程应该把自己的方法放在哪里?

magicing 2009-05-20 10:21:37
线程的目的肯定是要启动一个新的方法开始新的执行,所以工作线程传的是一个函数指针我能理解,可是在ui线程中,继承了一个线程类,然后创建了这个对象以后,调用BeginThread就开始执行新的线程了,你应该把你需要执行的方法放在哪里呢?这样看来似乎只能放在构造方法或者初始化方法里么,真的是这样用的么?
...全文
80 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
biweilun 2009-05-20
  • 打赏
  • 举报
回复
不一定在构造中进行处理,只要把握好时机,在主函数中的申明虚函数中做吧
qrlvls 2009-05-20
  • 打赏
  • 举报
回复
习惯上是将主线程作为UI线程的,因为一般是在这个线程中创建窗口,处理消息循环,基本上目前所有的UI框架都是这样的
不要被各种所谓的框架蒙蔽了,实际VS作为开发工具而言,各种框架只是屏蔽细节,除了C顺序执行的流程外,C++无外乎是多了构造,析构的时机,还要注意全局变量/对象初始化的时机
qrlvls 2009-05-20
  • 打赏
  • 举报
回复
系统本身本来是没有工作线程和UI线程的区别的,只是大家习惯上这样说而已

所谓 UI 线程只不过是含有消息循环的工作线程而已
huofen2005 2009-05-20
  • 打赏
  • 举报
回复
UI线程主体MFC已经帮你写好好,你只要处理消息就行了。
NineheadedBird 2009-05-20
  • 打赏
  • 举报
回复
如果你继承的是一个线程类,那么父类应该有一个虚函数是需要你来实现的,这个就是你的执行方法。
w29468 2009-05-20
  • 打赏
  • 举报
回复
线程就是一个函数执行体,跟UI不UI没有关系;UI线程不同于工作线程的只是有自己的消息队列,能处理GUI消息而已。
keristef 2009-05-20
  • 打赏
  • 举报
回复
方法很多:
假设CUIThread : public CWinThread,在CUIThread中可以加方法作为执行体,利用消息启动之,也可以利用多继承如:
CUIThread : public CWinThread,IWork

IWork为接口,在CUIThread中实现,消息循环Run启动时就执行这个任务。

15,471

社区成员

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

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