摘要:
转载自:https://blog.csdn.net/chinajobs/article/details/51461368 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Cont 阅读全文
摘要:
转载自:https://www.cnblogs.com/lackey/p/4782777.html 本例是把多个线程访问数据库的请求,全部阻塞到一个线程。 这是实际编程中常见的一种问题。 示例源码下载,所需支持单元均在源码中,且附详细说明。 TElegantThread 的父类是 TSimpleTh 阅读全文
摘要:
转载自:https://www.cnblogs.com/lackey/p/5371544.html 对线程的使用,是每个开发者都应该熟练掌握的,也是进阶的重要一环。 可以这样说,没有线程,连界面假死的问题都解决不了,就更别谈并行处理来提高效率了。 本例对线程进行改进,打造一个基础的线程,以后线程应用 阅读全文
摘要:
转载自:https://www.cnblogs.com/lackey/p/5411389.html delphi 自带的Timer控件,使用方便,但它的 OnTimer 事件是在主线程中引发的。 如果在事件中执行较耗时的代码,会引起主界面假死。故实现一个线程的Timer就有必要了。 TThreadT 阅读全文
摘要:
转载自:https://www.cnblogs.com/lackey/p/10357331.html 在编程开发的时候,我们时常会调用windows本身的功能,如:检测网络通断,连接无线wifi等。 虽然,用 windows api 操作可以完美地完成这些操作,但是,函数参数太难了。令人望而生畏,不 阅读全文
摘要:
转载自:https://www.cnblogs.com/lackey/p/8988376.html 面向对象编程手法,是一项综合技能,单独把谁拿出来说都不合适。本次重写 TSimpleThread ,使其能在 D7 下运行。 基于 TSimpleThread ,重磅推出 TSimpleUI.ExeP 阅读全文
摘要:
转载自:https://www.cnblogs.com/lackey/p/6337357.html 第七节:在多个线程时空中,把各自的代码塞到一个指定的线程时空运行 以 Ado 为例,常见的方法是拖一个 AdoConnection 在窗口上(或 DataModule 中), 再配合 AdoQuery 阅读全文
摘要:
转载自:https://www.cnblogs.com/lackey/p/6336658.html 第六节: TList 与泛型 TList 是一个重要的容器,用途广泛,配合泛型,更是如虎添翼。 我们先来改进一下带泛型的 TList 基类,以便以后使用。 本例源码下载(delphi XE8版本): 阅读全文
摘要:
转载自:https://www.cnblogs.com/lackey/p/6306368.html 第五节:多个线程同时执行相同的任务 1.锁 设,有一个房间 X ,X为全局变量,它有两个函数 X.Lock 与 X.UnLock; 有如下代码: X.Lock; 访问资源 P; X.Unlock; 现 阅读全文
摘要:
转载自:https://www.cnblogs.com/lackey/p/6305768.html 第四节:多线程类的改进 1.需要改进的地方 a) 让线程类结束时不自动释放,以便符合 delphi 的用法。即 FreeOnTerminate:=false; b) 改造 Create 的参数,让它适 阅读全文
摘要:
转载自:https://www.cnblogs.com/lackey/p/6297118.html 第三节:设计一个有生命力的工作线程 创建一个线程,用完即扔。相信很多初学者都曾这样使用过。 频繁创建释放线程,会浪费大量资源的,不科学。 1.如何让多线程能多次被复用? 关键是不让代码退出 Execu 阅读全文
摘要:
转载自:https://www.cnblogs.com/lackey/p/6296414.html 第二节:在线程时空中操作界面(UI) 1.为什么要用 TThread ? TThread 基于操作系统的线程函数封装,隐藏了诸多繁琐的细节。 适合于大部分情况多线程任务的实现。这个理由足够了吧? 什么 阅读全文
摘要:
转载自:https://www.cnblogs.com/lackey/p/6297115.html 第一节:初识多线程 1.为什么要学习多线程编程? 多线程(多个线程同时运行)编程,亦可称之为异步编程。 有了多线程,主界面才不会因为耗时代码而造成“假死“状态。 有了多线程,才能使多个任务同时执行,最 阅读全文
摘要:
转载自:https://www.cnblogs.com/xumenger/p/4319354.html 1. 介绍Win32 API和Win32系统。还要讨论Win32系统的功能以及它与16位系统在功能上的几个主要区别。只是让对Win32系统有一个基本的了解。当已经基本了解Win32操作后,就可以在 阅读全文
摘要:
转载自:https://www.cnblogs.com/xumenger/p/4440620.html TThread在Classes单元里的声明如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 阅读全文
摘要:
转载自:https://www.cnblogs.com/xumenger/p/4440722.html 在16位时代,当我们在Windows3.x下编程时,经常会用到GetTickCount()或者timeGetTime()来判断一段代码的执行时间。示例如下 1 2 3 4 5 6 7 var St 阅读全文
摘要:
转载自:https://www.cnblogs.com/xumenger/p/4440646.html 当线程对象的Execute()执行完毕,我们就认为此线程终止了。这时候,它会调用Delphi的一个标准例程EndThread(),这个例程再调用API函数ExitThread()。由ExitThr 阅读全文
摘要:
转载自:https://www.cnblogs.com/xumenger/p/4450634.html 尽管多线程能够解决许多问题,但是同时它又给我们带来了很多的问题。其中主要的问题就是:对全局变量或句柄这样的全局资源如何访问?另外,当必须确保一个线程中的某些事件要在另一个线程中的其他时间之前(或之 阅读全文
摘要:
更详细的可以参考:http://www.cnblogs.com/xumenger/p/4450659.html 或者参考之后的博客 四个系统内核对象(事件、互斥、信号、计时器)都是线程同步的手段,从这也能看出处理线程同步的复杂性;不过这还不是全部,Windows Vista开始增加了 Conditi 阅读全文
摘要:
转载自:https://www.cnblogs.com/xumenger/p/4450659.html 当有多个线程的时候,经常需要去同步这些线程以访问同一个数据或资源。 例如,假设有一个程序,其中一个线程用于把文件读到内存,而另一个线程用于统计文件的字符数。当然,在整个文件调入内存之前,统计它的计 阅读全文