首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 如何 在同一程序中 做一个按钮 中途 停止 Procedure (注 即 如何新开一个线程 执行制定Procedure ,并如何终止 )??? 急!!!!! [已结贴,结贴人:OverNight]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • OverNight
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-08-19 20:31:13 楼主
    同上

    急!!!!!
    27  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liangpei2008
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 09:14:401楼 得分:27
    Delphi(Pascal) code
    unit MyTestThread; interface uses Classes,SyncObjs; type TMyThread = class(TThread) private //定义内部对象 FInterval:Integer; { Private declarations } protected procedure Execute; override; public constructor Create(CreateSuspend: Boolean); destructor Destroy; override; property Interval:Integer read FInterval write FInterval; end; procedure NotifyThreadsToQuit; var QuitEvent: TEvent; implementation constructor TMyThread.Create(CreateSuspend: Boolean); begin inherited; //创建线程对象 end; destructor TMyThread.Destroy; begin //析构线程对象 inherited; end; procedure TMyThread.Execute; begin while not Terminated do begin //do the procedure; case QuitEvent.WaitFor(Interval) of wrSignaled, wrAbandoned: Terminate; wrTimeOut, wrError: ; // do nothing end; end; { Place thread code here } end; procedure NotifyThreadsToQuit; begin QuitEvent.SetEvent; end; initialization QuitEvent := TEvent.Create(nil,True,False,'ThreadQuitEvent'); finalization QuitEvent.Free; end.

    界面程序只要Use该单元,且执行NotifyThreadsToQuit即可!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liangpei2008
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 09:15:372楼 得分:0
    另:Interval为间隔轮询时间!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liangpei2008
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 09:19:583楼 得分:0
    Delphi(Pascal) code
    //客户端调用线程; var MyThread:TMyThread; begin MyThread:=TMythread.Create(True); MyThread.FreeOnTerminate:=False; MyThread.Interval:=1000//Interval为毫秒级的; MyThread.Resume; end; //客户端终止线程 procedure TForm1.Button1Click(Sender: TObject); begin NotifyThreadsToQuit end;
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved