等待匿名线程-delphi xe中同时等待几个匿名线程,运行时结果错误(没cb了,无法悬赏)

问题描述

delphi xe中同时等待几个匿名线程,运行时结果错误(没cb了,无法悬赏)

我原本是想创建几个线程,同时写如数字在memo中.然后用waitformultipleobjects等待
全部线程全部完成后写入ok.可问题是运行后结果错误如下.
(搞到了2cb,如何添加?)
1:等待不到结束线程.超时3秒过后写入ok.然后再写入数字.
2:原本我想写的应该是0-5的数字,可运行后基本是写入6最多.
代码如下.我该如何改?没cb了.请各位不吝赐教.
var
Testthread: TThread;
Waitthread: TWOHandleArray;
i: integer;
begin
memo1.Clear;
for i := 0 to 5 do
begin
Testthread:= TThread.CreateAnonymousThread(
procedure
var
k: integer;
begin
k:= i;
memo1.Lines.Add(IntToStr(k));
end);
Waitthread[i]:= Testthread.Handle;
// Testthread.FreeOnTerminate:= True;
Testthread.Start;
end;
WaitForMultipleObjects(6, @Waitthread, false,3000 );{INFINITE}
memo1.Lines.Add('ok');
end;

时间: 2024-10-28 09:29:08

等待匿名线程-delphi xe中同时等待几个匿名线程,运行时结果错误(没cb了,无法悬赏)的相关文章

vs中编写了一个会显示水平和竖直滚动条的程序,但是运行时出现错误的结果,请问这是为啥?

问题描述 vs中编写了一个会显示水平和竖直滚动条的程序,但是运行时出现错误的结果,请问这是为啥? 这是源代码: #include #include"resource.h" LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { static

在iis上部署了一个webservice,在iis中能正常运行,但是在一个项目中引用,编译通过,但是运行提示以下错误System.Web.Services.Protocols.SoapException: 服务器未能识别 HTTP 头 SOAPAction

问题描述 System.Web.Services.Protocols.SoapException:服务器未能识别HTTP头SOAPAction的值:http://www.g-esoft.com/OneAccount/WebService/GetEmployeeByKeyid.在System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()在System.Web.Services.Protocols.SoapServe

可否可以在窗口中添加图片控件,在运行时读取按指定配置文件内容,再向图片控件添加数据!

问题描述 大家过年好!小弟给大家拜年了!无聊想写一个象棋程序!有什么控件可以是圆形的,可以添加图片?或者让图片透明部分显示此控件下面的内容?请前辈们指点!谢谢了! 解决方案 解决方案二:如果你使用WPF/Silverlight,随便什么控件(比如说Image控件)都可以承载透明前景图片.透明背景图片.你不会还只是使用20年前的Winform技术吧?解决方案三:随便搜两个介绍:解决方案四:引用1楼sp1234的回复: 如果你使用WPF/Silverlight,随便什么控件(比如说Image控件)都

线程-Delphi中的Dispose的问题

问题描述 Delphi中的Dispose的问题 我写了这样的一个Delphi程序: 1号线程从数据库中取出信息,然后放到一个队列Q中; 2号线程从Q中取出信息进行处理. 当线程2从队列Q中取出数据进行处理之后就会使用Dispose来释放它,然后再取,再处理,再释放 但是出现问题,内存会一直增长,当我把里面Dispose去掉之后,也就是2号线程从队列取出信息,进行处理,但是不释放 这样的两种方式,最后的内存泄露的情况是一样的,所以很是疑惑!! 解决方案 这一问题,主要是线程中创建占用内存,没以有及

Delphi XE程序设计系列 2-开发DataSnap/REST服务器

在上次的文章中讨论了如何把传统的Delphi 主从架构应用程序逐渐转换为DataSnap JSON服务器,在本篇文章中让我们正式讨论如何使用Delphi XE开发DataSnap/REST服务器,由于这其中牵涉到非常多的技术,因此我们将花数篇的篇幅来讨论.现在就让我们从DataSnap/REST服务器开始. 开发DataSnap服务器     Delphi XE版的DataSnap允许开发人员同时在DataSnap服务器中实作RESTful架构的服务器,如此一来DataSnap服务器不但可以在网

动态运行时装入方式-java类的动态装入 与 操作系统中的动态装入有什么联系吗?

问题描述 java类的动态装入 与 操作系统中的动态装入有什么联系吗? java类的动态装入 与 <操作系统>中提到的程序装入方式--动态运行时装入方式 有什么联系吗? 解决方案 有些类似,java虚拟机可以视作是一个仿真的计算机和操作系统. 解决方案二: 我只知道java的装入用的是classload

《C#多线程编程实战(原书第2版)》——3.6 在线程池中使用等待事件处理器及超时

3.6 在线程池中使用等待事件处理器及超时 本节将描述如何在线程池中对操作实现超时,以及如何在线程池中正确地等待. 3.6.1 准备工作 为了学习本节,你需要安装Visual Studio 2015.除此之外无需其他准备.本节的源代码放置在BookSamples\Chapter3\Recipe5目录中. 3.6.2 实现方式 请执行以下步骤来了解在线程池中实现超时及正确的等待: 1.启动Visual Studio 2015.新建一个C#控制台应用程序项目. 2.在Program.cs文件中加入以

linux多线程编程中如何等待过个线程退出

问题描述 linux多线程编程中如何等待过个线程退出 linux多线程编程中,如果线程A创建了线程B,我知道用pthread__ join可以令线程A 阻塞然后等待线程B的退出.如果线程A创建了三个线程B,C,D,执行完的先后顺序不知.想让A必须等待三个线程都退出后再退出,应该怎么做? 连用pthread__join三次吗???但是第一次用了pthread__join后,A不就阻塞了吗? 解决方案 多线程编程(一):线程创建和退出Linux多线程编程(创建线程)Linux多线程编程(创建线程)

线程管理(六)等待线程的终结

等待线程的终结 在某些情况下,我们需要等待线程的终结.例如,我们可能会遇到程序在执行前需要初始化资源.在执行剩下的代码之前,我们需要等待线程完成初始化任务. 为达此目的, 我们使用Thread 类的join() 方法.当前线程调用某个线程的这个方法时,它会暂停当前线程,直到被调用线程执行完成. 在这个指南中, 我们将学习用初始化例子来使用这个方法. 准备 指南中的例子是使用Eclipse IDE 来实现的.如果你使用Eclipse 或者其他的IDE,例如NetBeans, 打开并创建一个新的ja