tthread相关内容
我有一个房间,里面有 60 台计算机/设备(40 台计算机和 20 台基于 Windows CE 的示波器),我想知道使用 ping 的每个人都活着.首先我写了一个标准的 ping(见这里 Delphi Indy Ping Error 10040),这是现在工作正常,但在大多数计算机离线时需要很长时间. 所以我想做的是写一个多线程 Ping,但我很挣扎.我在互联网上只看到了很少的例子,没有人
..
我必须开发一个程序,以根据我给出的Select语句继续监视数据库中的值 可以随时更改监视值,并且我的程序必须根据我给出的select语句的结果来感知更改 我想使用TThread监视选择结果,因为我的系统还具有其他功能,用户不仅需要监视值,还需要对其进行处理. 如何在Delphi XE2中使用TThread进行操作 am使用VCL ...没有.Net 致谢. 解决
..
我知道您需要synchronize (yourprocedure)进行设置标签的文字. 但是呢: 阅读标签的文本. 切换/设置标签的启用属性. 调用其他标签的过程/功能(例如onclick事件). 当我需要使用synchronize时,是否有一条容易知道/记住的简单规则? PS .:同步类似于PostMessage/SendMessage吗? 解决方案 简单的经验法则
..
我编写了TThread后代类,如果引发异常,则将异常的Class和Message保存在两个私有字段中 private //... FExceptionClass: ExceptClass; // --> Class of Exception FExceptionMessage: String; //... 我认为我可以在OnTerminate事件中raise类似的异常,
..
我正在处理TLogger类,该类将我的应用程序日志记录到文件中... 我必须设法将日志从文件发送到TMemo: 1.将TMemo分配给TLogger类,然后将True分配给DisplayInMemo属性,然后仅调用GetLogFromFile(); 2.调用GetLogsFromFile();然后Self.Memo1.Text:= TLogger.LogsResult; 以下...注释
..
我创建了一个从TThread类派生的新类,并在构造函数上调用“继承的Create(True);",然后调用"Resume()",因为我已经覆盖了Execute()调用,现在我想回想一下Execute()(再次运行线程)而不会破坏类实例,因此在新类内部有一个名为"myRestart()"的函数,该函数可调用“继承的Create(True);".并使我能够再次调用"Resume()",然后线程再次工作
..
我的程序中有一个主线程和一个单独的线程.如果单独的线程在主线程之前完成,则它应自动释放自己.如果主线程先完成,则应释放单独的线程. 我了解FreeOnTerminate,并且我读到您必须小心使用它. 我的问题是,以下代码正确吗? procedure TMyThread.Execute; begin ... Do some processing Synchronize(T
..
我有一个TThread对象,并且希望能够通过程序主窗体上的按钮来启动/停止线程.我一直在研究实现此目的的方法,到目前为止,我有以下想法: 当用户单击“停止"时终止并释放该线程,并在单击“开始"时创建一个新线程. 使用sleep来延迟线程(我不想这样做) 具有一个布尔值属性,用于确定线程是否已暂停.仅当此布尔值为false时,才会执行Execute中的代码. 我倾向于#3.从主窗体在
..
有时这个功能锁定我的程序,它会冻结,直到我关闭它。 这里有什么问题? 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
..
我正在使用Skype API,每次收到邮件时都会发回邮件。我不确定这是否真的是是什么原因造成的,但它是最接近的:当我发送太多的消息,COM控件不能处理所有的答复,这导致它崩溃整个应用程序当我使用循环的时,会发生这种情况。 我正在使用线程来完成这个工作,所以我的程序赢了不要挂我知道我可以在线程中执行 Sleep(); ,并且(应该)不会使整个程序休眠。问题是,我的COM控件也会睡觉,所以它仍然
..
在Delphi 2009中,我发现任何时候在应用程序中使用TThread.CurrentThread,当应用程序关闭时,我会收到以下错误消息: 在0003DBBA模块ntdll.dll中异常EAccessViolation。 模块'ntdll.dll'中的地址7799DBBA上的访问冲突。写 地址00000014. 除非它只是我的机器,你可以在一个几秒钟:创建一个新的De
..
我有一个耗时的程序,我想使用Delphi XE7的新的并行库并行处理。 这是单线程版本: procedure TTerritoryList.SetUpdating(const Value:boolean); var i,n:整型; begin 如果(fUpdating Value)或不是值然后 begin fUpdating:= Value; for
..
很久以前,当我开始使用Delphi中的线程时,我正在通过在构造函数末尾调用 TThread.Resume 来开始自己的线程,像这样: 构造函数TMyThread.Create(const ASomeParam:String); begin 继承Create(True); try FSomeParam:= ASomeParam; //初始化一些东西在这里... final
..
我的应用程序是一个tcp / ip服务器,主线程只创建一次&一直听着当新客户端连接时,主线程创建新线程 TClientThread 类型。然而,没有列出运行的客户端线程,因为这会使我的应用程序有点复杂...有什么办法在所有线程上执行“terminate”方法,即使线程很忙(在我的情况下“忙”意味着它正在等待数据,超时时间大约为30秒...所以我不得不杀死它,而不用等待。) 简单的关闭应用程序似乎
..
在给定的例子中,当调用 AThread.Free时收到异常。 code>程序Project44; {$ APPTYPE CONSOLE} 使用 SysUtils,Classes,Windows; type TMyException = class(Exception); var AThread:TThread; begin AThread:=
..
我想在后台运行一个线程,它将以给定的时间间隔检查与某些服务器的连接。例如每5秒钟。 我不知道这是否有一个很好的“desing模式”?如果我记得正确的话,我已经读过某处,执行方法中的睡眠线程不好。但是我可能错了。 另外,我可以使用正常的TThread类或OTL线程库。 想法? 谢谢。 解决方案 使用 WaitForSingleObject TThread 后代的执行方
..
这个问题可能很简单,但我希望你不会忽略它。 在销毁一个TThread对象之前,通常需要等到调用TThread.Execute()方法的线程完成,因为只有这样,我们可以确定,例如,在类的析构函数内销毁的对象不再被访问。因此,有必要调用Terminate设置线程必须检查的Terminated标志,以确定是否退出,然后调用WaitFor()方法。 因为线程可能被暂停,我认为在调用WaitFo
..
据了解并了解TThread类的方法,如果您同步代码,它实际上在主应用程序线程中执行(就像一个计时器/ buttonclick / etc) 我已经一直在玩,注意到一个MessageBox不会阻止主应用程序,但睡眠正如预期的那样。为什么是这样? 键入 TTestThread = class(TThread) private procedure SynchThread ; prot
..
我有一个房间里有60台电脑/设备(40台电脑和20台基于Windows CE的示波器),我想知道哪一个都是使用ping的。首先我写了一个标准的ping(见这里 Delphi Indy Ping Error 10040 ),这是现在工作很好,但是大多数电脑离线时都要花上几个月的时间。 所以我想要做的是写一个MultiThread Ping,但我很挣扎。我只看过互联网上的例子,没有人匹配我的需求
..