关于线程卡死的问题

slmax1 2009-05-13 04:22:06
我使得一个进程加载了我的DLL文件,

我想在DLL文件中实现每隔一定时间(大于4秒)执行一次我自己写的函数.

我的方法是写一个死循环,在里面加上延时功能.但有几个问题/

SLEEP会卡进程(目标进程)

GetTickCount会卡进程(目标进程)

SetTime会卡进程(目标进程)

如何实现?
...全文
153 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
slmax1 2009-05-14
  • 打赏
  • 举报
回复
为什么没人了.
slmax1 2009-05-13
  • 打赏
  • 举报
回复
我是通过我编写的EXE程序利用CreateRemoteThread在远程进程里创建了一个线程,在加载DLL之后会被挂起.
线程里执行我编写的DLL的代码,DLL代码里有死循环,
请教如何能够使目标进程在加载DLL之后不被挂起,而且具有延时功能.


能给一段具体的实现代码吗?
Bear_hx 2009-05-13
  • 打赏
  • 举报
回复
明白你的意思,你应该自己独立创建一个线程去执行你的代码。
SLEEP会卡进程(目标进程) 你等于把调用你的线程给挂起了,如果这个线程是主线程,则这个程序都假死了。
SetTime会卡进程(目标进程) 和上一个一样

解决办法就是自己创建一个线程,然后在线程的Execute里面执行你的代码。
slmax1 2009-05-13
  • 打赏
  • 举报
回复
我想达到在目标进程运行我自己的DLL代码时,它本身的其它线程照常运作.


不知道我表达清楚了没有.

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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