随笔分类 - Delphi-Thread
摘要:一、线程创建 Windows线程在创建时会首先创建一个线程内核对象,它是一个较小的数据结构,操作系统通过它来管理线程。新线程可以访问进程内核对象的所有句柄、进程中的所有内存及同一进程中其它线程的栈。 创建有以下几种方式,分别说明 首先声明一个线程函数,原型为: 1. CreateThread() 该
阅读全文
摘要:线程天敌TerminateThread与SuspendThread 作者:童磊(magictong) 目的:不是演示TerminateThread和SuspendThread的原理而是希望能在自己的程序中摒弃它们。 一、不使用TerminateThread的N条理由(先YY一下) 1、如果使用Ter
阅读全文
摘要:新delphi的线程TThread有了CreateAnonymousThread方法,如果再为它加一个可传递的参数不就更好了吗?代码如下: 代码挺简单的,就是传递了一个方法及参数. 在线程里调用就是了. 将以上代码保存在一个单元中,引用了之后,就可以这样用了: 如果执行线程的方法有两个,三个参数,对
阅读全文
摘要:在多线程下面,有时候会希望等待某一线程完成了再继续做其他事情,要实现这个目的,可以使用Windows API函数WaitForSingleObject,或者WaitForMultipleObjects。这两个函数都会等待Object被标为有信号(signaled)时才返回的。那么,什么是信号呢?简单
阅读全文
摘要:帮大家读懂TThread类 TThread类在Delphi的RTL里算是比较简单的类,类成员也不多,类属性都很简单明白,本文将只对几个比较重要的类成员方法和唯一的事件:OnTerminate作详细分析。 首先就是构造函数: constructor TThread.Create(CreateSuspe
阅读全文
摘要:你用的版本? 你应该关注下delphi 更新说明第一方法: 可以用线程。第二方法: TNetHTTPClient 已经支持异步 http://bbs.2ccc.com/topic.asp?topicid=514436
阅读全文
摘要:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Button1:
阅读全文
摘要:delphi 自带的Timer控件,使用方便,但它的 OnTimer 事件是在主线程中引发的。 如果在事件中执行较耗时的代码,会引起主界面假死。故实现一个线程的Timer就有必要了。 TThreadTimer 基于 TSimpleThread 继承而来。 本例源码下载 附:delphi 进阶基础技能
阅读全文
摘要:本例是把多个线程访问数据库的请求,全部阻塞到一个线程。 这是实际编程中常见的一种问题。 示例源码下载,所需支持单元均在源码中,且附详细说明。 TElegantThread 的父类是 TSimpleThread。 附:delphi 进阶基础技能说明 http://www.cnblogs.com/lac
阅读全文
摘要:为什么要有TLS?原因在于,进程中的全局变量与函数内定义的静态(static)变量,是各个线程都可以访问的共享变量。在一个线程修改的内存内容,对所有线程都生效。这是一个优点也是一个缺点。说它是优点,线程的数据交换变得非常快捷。说它是缺点,一个线程死掉了,其它线程也性命不保; 多个线程访问共享数据,需
阅读全文
摘要:WINDOWS操作系统中可以允许最大的线程数 默认情况下,一个线程的栈要预留1M的内存空间 而一个进程中可用的内存空间只有2G,所以理论上一个进程中最多可以开2048个线程 但是内存当然不可能完全拿来作线程的栈,所以实际数目要比这个值要小。 你也可以通过连接时修改默认栈大小,将其改的比较小,这样就可
阅读全文
摘要:研究了1天这个。。。MSDN说的不是很清楚NTSTATUS PsCreateSystemThread( _Out_ PHANDLE ThreadHandle, _In_ ULONG DesiredAccess, _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes
阅读全文
摘要://////////////////////////////////////////////////// // // // ThreadedTimer 1.24 // // ...
阅读全文
摘要:[delphi] view plain copy unit Unit4; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Shel
阅读全文
摘要:说起多线程,我们可以说起一大堆和它相关的有趣话题来,比如什么子孙线程关系,父子线程关系,线程同步异步之类的研究话题来,而我今天所说的,是关于父子线程的一些有趣现象。 首先提出一个问题,“在多线程的应用程序中,当父线程结束之后,子线程会不会退出呢?”,本文将围绕这个问题,深入分析windows中父子线
阅读全文
摘要:在多线程开发中,如果在多线程中访问主线程创建的对象,并触发了这个对象的事件,将会执行这个事件的处理函数,那么这个处理函数是在主线程中执行还是在触发事件的线程中执行呢?针对这个问题做了一下测试,如果没有通过Windows消息触发事件,则在子线程(触发事件的线程)中执行事件处理函数,如果是由Window
阅读全文
摘要:现在多数设备、计算机都有多个CPU单元,即使是手机也是多核的。但要在开发中使用多核的优势,却需要一些技巧,花费时间编写额外的代码。好了,现在可以使用Delphi做并行编程了。 在Delphi、C++ Builder和RAD Studio XE7中,有一个简化并行运行任务的库,叫做并行编程库。 并行编
阅读全文
摘要:在delphi线程中实现消息循环 在delphi线程中实现消息循环Delphi的TThread类使用很方便,但是有时候我们需要在线程类中使用消息循环,delphi没有提供. 花了两天的事件研究了一下win32的消息系统,写了一个线程内消息循环的测试. 但是没有具体应用过,贴出来给有这方面需求的DFW
阅读全文
摘要:http://blog.csdn.net/wishfly/article/details/3726985 你在主线程用了WaitForSingleObject,导致了消息循环的阻塞,界面假死。 然后在线程中调用了SetDlgItemText,而SetDlgItemText实际上调用的是SendMes
阅读全文
摘要:program Monitor; // {$APPTYPE CONSOLE} uses Winapi.Windows, System.SysUtils, ProcLib in 'ProcLib.pas'; var Mutex: HWND; const c_AppName = 'server.exe'
阅读全文