高分求助:关于线程中使用Synchronize的问题!

kongling12 2009-10-28 02:50:42
以下是代码 一会说问题
procedure A.execute;
begin
while not Terminated do
begin
Synchronize(AA);
sleep(1000);
end;
end;
procedure A.AA
BEGIN
fun(@zc1,@id); //这个是注入的注册函数1
sleep(1000); //主要是用来等待注入完毕 如果第一个注入每执行完就注入第二个就会错误
fun(@zc2,@ID); //这个是注入的注册函数2
sleep(1000);
fun(@zc3,@ID); //这个是注入的注册函数3
sleep(1000);
END
问题这个需要循环4次才能注册完毕(直到弹出成功对话框) 小弟如果不用 Synchronize(AA)用 AA(调用方法**:=a.create(false)) 不知道为什么这个就注入一次这个线程就死了 不再循环了 如果用这个 Synchronize(AA) 我的程序就假死了 我知道这是因为 Synchronize(AA); 这个函数让我这个在主线程执行 这么多sleep让主线程假死掉了 小弟想用waitforsingleobject()这个函数来代替sleep() 这样就不会假死了 可是小弟不知怎么用这个waitforsingleobject(**,INFINITE) 第一个参数怎么写呀? fun这个是注入的函数我用sleep 也是因为不知道被注入的程序什么时候能执行完我注入的函数 所以我认为我应该用 waitforsingleobject 可是就是不知道怎么返回注入执行完毕的事件 或者类似的东西 求大虾们出手相助啊!
...全文
92 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
帮你UP
kongling12 2009-10-28
  • 打赏
  • 举报
回复
没人?

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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