首页
社区
课程
招聘
[求助]怎样保证回调函数在主线程中执行?
发表于: 2013-11-25 09:53 8624

[求助]怎样保证回调函数在主线程中执行?

2013-11-25 09:53
8624
我做了一个DLL,里面某个函数会执行耗时的工作,于是将此函数放在线程中去执行
等待执行完后调用用户设置的回调函数

现在有个问题,如果直接调用回调函数的话,是在子线程中执行的
如果回调函数中有操作UI的代码,则会引起程序崩溃(测试程序用的Delphi,当我在回调函数中试图对界面进行操作时会引起程序崩溃)

如何解决呢?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 209
活跃值: (143)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
SendMessage
2013-11-25 10:01
0
雪    币: 108
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
设置公用信息交换区,线程的代码在线程中执行,改变公用信息来操作UI,主线程中弄个定时器什么的检测公用信息并作出相应,注意互锁;或用消息等机制也行,你把回调弄到主线程耗时的话会短暂锁定UI
2013-11-25 10:04
0
雪    币: 1392
活跃值: (5207)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
4
2楼正解
2013-11-25 10:30
0
雪    币: 702
活跃值: (4579)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
SetTimer
2013-11-25 10:58
0
游客
登录 | 注册 方可回帖
返回
//