社区
Delphi
帖子详情
线程问题求助
blns
2007-03-09 11:00:18
我在主窗口中的一个按钮点击事件中创建了一个线程,线程调用了主窗体的其他按钮的点击事件,在退出程序的报错,Exception EOSError in…… 及“无效的窗口句柄”
...全文
244
10
打赏
收藏
线程问题求助
我在主窗口中的一个按钮点击事件中创建了一个线程,线程调用了主窗体的其他按钮的点击事件,在退出程序的报错,Exception EOSError in…… 及“无效的窗口句柄”
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Blakhawk
2007-03-10
打赏
举报
回复
线程不能调用界面事件驱动.
你调用
Synchronize(doMethod);
是必须等待doMethod执行完毕才释放控制权,要不就一致等待,所以就产生界面死了的现象.
把Synchronize去掉,直接调用doMethod.
withcsharp
2007-03-09
打赏
举报
回复
你如果 不要 传复杂参数
用message更好
blns
2007-03-09
打赏
举报
回复
使用starsky2006的方法,我的函数根本没有被执行
starsky2006
2007-03-09
打赏
举报
回复
procedure test.Execute;
begin
Synchronize(Form1.method());
end;
HsWong
2007-03-09
打赏
举报
回复
先释放线程,再退出程序,在线程开始设FreeOnTerminate=true试试
blns
2007-03-09
打赏
举报
回复
程序能正常运行下去,但是界面就不动了,直到线程执行完成。才能动
withcsharp
2007-03-09
打赏
举报
回复
你仔细 对一下 代码
withcsharp
2007-03-09
打赏
举报
回复
不会阿
我运行 时 很正常啊
blns
2007-03-09
打赏
举报
回复
参照withcsharp() 的方法,退出程序时没有报错了,但是当程序执行的时候,不能点击鼠标,不然界面就失去响应了。怎样才让鼠标可以动呢?
withcsharp
2007-03-09
打赏
举报
回复
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Memo2: TMemo;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
FmyThread: TThread;
public
procedure test;
end;
TtestThread = class(TThread)
private
FFrm: TForm1;
procedure doMethod;
protected
procedure Execute; override;
public
constructor Create(Frm: TForm1);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TtestThread }
constructor TtestThread.Create(Frm: TForm1);
begin
FFrm := Frm;
FreeOnTerminate := true;
inherited Create(true);
Priority := tpLowest;
end;
procedure TtestThread.doMethod;
begin
FFrm.test;
end;
procedure TtestThread.Execute;
begin
while not Terminated do
begin
Sleep(100);
Synchronize(doMethod);
end;
end;
procedure TForm1.test;
begin
Memo1.Lines.Add(FormatDateTime('hh:NN:ss.zzz', now))
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
FmyThread := TtestThread.Create(self);
Button1.Enabled := false;
FmyThread.Resume;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FmyThread := nil;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
if FmyThread <> nil then
begin
FmyThread.Terminate;
end;
end;
end.
关于
线程
通信DatagramPacket的
求助
问题
出现在服务器端的计算
线程
客户机的计算式格式为:+9 6//代表9+6 package homework2; import java.util.*; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; ...
易语言多
线程
防崩溃防卡死升级版例子-易语言
9、不要问我测试的qq哪来的,我在本论坛
求助
版块无意中下载的某个程序顺手提取的数据,忘了是哪个帖子的哪个程序的 10、本来有心写个教程一起发上来的,但是最近确实有事没时间,直接发源码,有兴趣的自己去研究吧 ...
JAVA多
线程
精讲下
线程
的同步(
线程
安全
问题
)l
线程
的死锁l
线程
间通信l
线程
组l
线程
池l 多
线程
的第三种实现方案l 匿名内部类方式使用多
线程
l 定时器的使用l 多
线程
面试题
go-datastructures:有用,高性能和
线程
安全的Go数据结构的集合
数据结构Go数据结构是有用,高性能和
线程
安全的Go数据结构的集合。注意:仅在Go 1.3+上进行了测试。增强树n维范围内碰撞的间隔树。 通过红黑增强树实现。 额外的尺寸在同时插入/查询中进行处理以节省空间,尽管这...
多处理器编程的艺术中英文版两本
现今,大多数工程技术人员都是通过艰辛的反复实践、
求助
有经验的朋友来学习多处理器编程技巧。这本最新的权威著作致力于改变这种状况,作者全面阐述了多处理器编程的指导原则,介绍了编制高效的多处理器程序所必备的...
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章