tthread相关内容

Delphi (XE2) Indy (10) 多线程 Ping

我有一个房间,里面有 60 台计算机/设备(40 台计算机和 20 台基于 Windows CE 的示波器),我想知道使用 ping 的每个人都活着.首先我写了一个标准的 ping(见这里 Delphi Indy Ping Error 10040),这是现在工作正常,但在大多数计算机离线时需要很长时间. 所以我想做的是写一个多线程 Ping,但我很挣扎.我在互联网上只看到了很少的例子,没有人 ..
发布时间:2021-12-13 23:35:09 其他开发

如何让TThread继续在后台工作,并在列表框中显示结果?

我必须开发一个程序,以根据我给出的Select语句继续监视数据库中的值 可以随时更改监视值,并且我的程序必须根据我给出的select语句的结果来感知更改 我想使用TThread监视选择结果,因为我的系统还具有其他功能,用户不仅需要监视值,还需要对其进行处理. 如何在Delphi XE2中使用TThread进行操作 am使用VCL ...没有.Net 致谢. 解决 ..
发布时间:2020-07-26 02:14:38 其他开发

什么时候需要在TThread中进行同步?

我知道您需要synchronize (yourprocedure)进行设置标签的文字. 但是呢: 阅读标签的文本. 切换/设置标签的启用属性. 调用其他标签的过程/功能(例如onclick事件). 当我需要使用synchronize时,是否有一条容易知道/记住的简单规则? PS .:同步类似于PostMessage/SendMessage吗? 解决方案 简单的经验法则 ..
发布时间:2020-07-26 02:13:35 其他开发

Delphi XE5-需要奇怪的行为帮助

我正在处理TLogger类,该类将我的应用程序日志记录到文件中... 我必须设法将日志从文件发送到TMemo: 1.将TMemo分配给TLogger类,然后将True分配给DisplayInMemo属性,然后仅调用GetLogFromFile(); 2.调用GetLogsFromFile();然后Self.Memo1.Text:= TLogger.LogsResult; 以下...注释 ..
发布时间:2020-05-14 01:13:42 其他开发

在TThread派生类中重新创建TThread

我创建了一个从TThread类派生的新类,并在构造函数上调用“继承的Create(True);",然后调用"Resume()",因为我已经覆盖了Execute()调用,现在我想回想一下Execute()(再次运行线程)而不会破坏类实例,因此在新类内部有一个名为"myRestart()"的函数,该函数可调用“继承的Create(True);".并使我能够再次调用"Resume()",然后线程再次工作 ..
发布时间:2020-05-14 00:19:53 其他开发

自动或手动释放TThread

我的程序中有一个主线程和一个单独的线程.如果单独的线程在主线程之前完成,则它应自动释放自己.如果主线程先完成,则应释放单独的线程. 我了解FreeOnTerminate,并且我读到您必须小心使用它. 我的问题是,以下代码正确吗? procedure TMyThread.Execute; begin ... Do some processing Synchronize(T ..
发布时间:2020-05-13 22:30:41 其他开发

“暂停"具有属性的线程

我有一个TThread对象,并且希望能够通过程序主窗体上的按钮来启动/停止线程.我一直在研究实现此目的的方法,到目前为止,我有以下想法: 当用户单击“停止"时终止并释放该线程,并在单击“开始"时创建一个新线程. 使用sleep来延迟线程(我不想这样做) 具有一个布尔值属性,用于确定线程是否已暂停.仅当此布尔值为false时,才会执行Execute中的代码. 我倾向于#3.从主窗体在 ..
发布时间:2020-05-13 22:26:33 其他开发

Delphi:TThreadList有时锁定程序

有时这个功能锁定我的程序,它会冻结,直到我关闭它。 这里有什么问题? function del_from_list(id:string):boolean; var i:integer; begin 结果:= True; 尝试 with global_list.LockList do begin for i:= 0 to Count-1 do begin 如果T ..
发布时间:2017-05-01 21:06:54 Delphi

暂停执行一个线程没有睡眠?

我正在使用Skype API,每次收到邮件时都会发回邮件。我不确定这是否真的是是什么原因造成的,但它是最接近的:当我发送太多的消息,COM控件不能处理所有的答复,这导致它崩溃整个应用程序当我使用循环的时,会发生这种情况。 我正在使用线程来完成这个工作,所以我的程序赢了不要挂我知道我可以在线程中执行 Sleep(); ,并且(应该)不会使整个程序休眠。问题是,我的COM控件也会睡觉,所以它仍然 ..
发布时间:2017-04-28 19:25:54 Delphi

Delphi TThread.CurrentThread和EAccessViolation - 这是一个Bug还是我的无能力?

在Delphi 2009中,我发现任何时候在应用程序中使用TThread.CurrentThread,当应用程序关闭时,我会收到以下错误消息: 在0003DBBA模块ntdll.dll中异常EAccessViolation。 模块'ntdll.dll'中的地址7799DBBA上的访问冲突。写 地址00000014. 除非它只是我的机器,你可以在一个几秒钟:创建一个新的De ..
发布时间:2017-04-24 23:35:18 Delphi

使用Delphi XE7并行库

我有一个耗时的程序,我想使用Delphi XE7的新的并行库并行处理。 这是单线程版本: procedure TTerritoryList.SetUpdating(const Value:boolean); var i,n:整型; begin 如果(fUpdating Value)或不是值然后 begin fUpdating:= Value; for ..
发布时间:2017-04-24 22:38:57 Delphi

使用TThread.Resume有什么问题?

很久以前,当我开始使用Delphi中的线程时,我正在通过在构造函数末尾调用 TThread.Resume 来开始自己的线程,像这样: 构造函数TMyThread.Create(const ASomeParam:String); begin 继承Create(True); try FSomeParam:= ASomeParam; //初始化一些东西在这里... final ..
发布时间:2017-04-24 22:08:28 Delphi

delphi - 在关闭应用程序时终止所有线程(TThread)

我的应用程序是一个tcp / ip服务器,主线程只创建一次&一直听着当新客户端连接时,主线程创建新线程 TClientThread 类型。然而,没有列出运行的客户端线程,因为这会使我的应用程序有点复杂...有什么办法在所有线程上执行“terminate”方法,即使线程很忙(在我的情况下“忙”意味着它正在等待数据,超时时间大约为30秒...所以我不得不杀死它,而不用等待。) 简单的关闭应用程序似乎 ..
发布时间:2017-04-24 03:30:54 Delphi

如何实现使用最少资源定期检查的线程?

我想在后台运行一个线程,它将以给定的时间间隔检查与某些服务器的连接。例如每5秒钟。 我不知道这是否有一个很好的“desing模式”?如果我记得正确的话,我已经读过某处,执行方法中的睡眠线程不好。但是我可能错了。 另外,我可以使用正常的TThread类或OTL线程库。 想法? 谢谢。 解决方案 使用 WaitForSingleObject TThread 后代的执行方 ..
发布时间:2017-04-23 20:39:40 Delphi

一种破坏TThread对象的正确方式

这个问题可能很简单,但我希望你不会忽略它。 在销毁一个TThread对象之前,通常需要等到调用TThread.Execute()方法的线程完成,因为只有这样,我们可以确定,例如,在类的析构函数内销毁的对象不再被访问。因此,有必要调用Terminate设置线程必须检查的Terminated标志,以确定是否退出,然后调用WaitFor()方法。 因为线程可能被暂停,我认为在调用WaitFo ..
发布时间:2017-04-23 17:53:48 Delphi

为什么MessageBox不会在同步线程上阻止应用程序?

据了解并了解TThread类的方法,如果您同步代码,它实际上在主应用程序线程中执行(就像一个计时器/ buttonclick / etc) 我已经一直在玩,注意到一个MessageBox不会阻止主应用程序,但睡眠正如预期的那样。为什么是这样? 键入 TTestThread = class(TThread) private procedure SynchThread ; prot ..
发布时间:2017-04-23 15:30:08 Delphi

Delphi(XE2)Indy(10)多线程Ping

我有一个房间里有60台电脑/设备(40台电脑和20台基于Windows CE的示波器),我想知道哪一个都是使用ping的。首先我写了一个标准的ping(见这里 Delphi Indy Ping Error 10040 ),这是现在工作很好,但是大多数电脑离线时都要花上几个月的时间。 所以我想要做的是写一个MultiThread Ping,但我很挣扎。我只看过互联网上的例子,没有人匹配我的需求 ..
发布时间:2017-04-23 12:37:04 Delphi