如何判断是死线程?(200分)

  • 主题发起人 主题发起人 cyb115
  • 开始时间 开始时间
C

cyb115

Unregistered / Unconfirmed
GUEST, unregistred user!
在多线程方式下,每个线程都采用阻塞式通讯,如何判断线程是否死了?
 
不会死,socket被关闭了就阻塞不住了。
 
To Another_eYes:
socket关闭就是结束了线程,但我要的是结束哪一条通信阻塞的线程。
 
想结束哪个线程就关闭相应的那个socket呀
 
按Ctrl+F12键,选择Project1,加入下列语句
program Project1;
uses
windows, {加入该句才能调用函数}
Forms,
Unit1 in 'Unit1.pas'{Form1};
{$R *.RES}
const classname='TForm1';
{声明为主窗体的类名}
var handle:integer;
{变量}
begin
{主要为该判断部分}
handle:=findwindow(classname,nil);{查找是否有此类的窗体}
if handle<>0 then
{不为0则程序已运行}
begin
messagebox(0,'该程序已经有一个在运行中!','运行',0);{提示程序已运行}
halt;
{退出程序}
end;
{}
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
  该程序在测试时由于Delphi也生成了此类实例窗体,所以会出现提示框,只有关闭Delphi后单独运行程序才能实现。
 
同意Another_eYes的说法,想结束哪个线程就关闭相应的那个socket就可以了!
 
杩欐牱灏辨槸鍙?兘鍦ㄤ竴鍙版満鍣ㄩ噷杩愯?涓
 
你自己维护一个列表.保存socket标志不就行了吗?
 
后退
顶部