我编写的多线程程序:要使用 Suspend方法 持起线程 和 使用 Resume方法 唤醒线程时常常出现句柄错误,请问一下,这是什么原因,怎样解决,最好有源代码

  • 主题发起人 主题发起人 Wenwenload
  • 开始时间 开始时间
W

Wenwenload

Unregistered / Unconfirmed
GUEST, unregistred user!
我编写的多线程程序:要使用 Suspend方法 持起线程 和 使用 Resume方法 唤醒线程时常常出现句柄错误,请问一下,这是什么原因,怎样解决,最好有源代码,急急急,在此先谢谢! (50分)<br />我编写的多线程程序:要使用 Suspend方法 持起线程 和 使用 Resume方法 唤醒线程时常常出现句柄错误,请问一下,这是什么原因,怎样解决,最好有源代码,急急急,在此先谢谢!
 
呵呵,估计你调用resume时线程已经或者正在释放。 好好看看代码吧。
 
execute
到达最好的时候就会自动释放自己
要线程永远不要到达完成就可以
如使用
while true
{
do
anything
suspned
}
 
说说你的代码啊,不然的话谁也不好帮你的
 
constructor TscanThread.Create(a:integer);
begin
inherited create(true);
//创建后挂起
……//你的代码
Resume;
//准备好后继续
end;

destructor TscanThread.Destroy;
begin
inherited Destroy;
end;
 
1。我认为是否你的多线程程序发生了程序死锁?
2。多线程程序如果在线程的同步化方面做的不好,那也会出现问题,你检查一下你的代码?
3。看你是否用了synchonize,lock,unlock,delaysuspend等方法,只要你的代码不会造成重写,死锁,我认为就不会出现你说的问题。
4。waitfor对象方法也可能出现问题。
5。注释掉一个线程,看程序可不可以正常运行,逐步消减线程数,直到你可以正常的运行。然后再回找原因。
 
线程同步有问题:
检查线程同步,如果在线程能使用,公共变量读写、操作主进程、使用的元件继承自
Tcomponent都必须使用同步。
You friend Xycall;
you can send email:zzhs@163.com, if you want to discuss with me!
 
后退
顶部