创建自定义的线程:目定义的线程必须从钾hread派生新的子类,而且因为竹hread类的Execute方法是纯虚函数,所以必须重载Execute方法,将需要在线程中实现的任务代码放在Execute方法中。如果E耽cute方法执行完毕,则线程结束并释放线程占用栈空间。 多线程中VCL对象的使用:由于C 十Builde:不支持多线程同时访问vCL库,所以在编写多线程序访问VCL时只能逐个地实现对VCL的访问。一般有两种方法。对与一些具有锁定功能的对象,可以在锁定之后再进行具体操作。如TCanva。类有一个h祀k过程,在调用画布作图前,调用h屺k过程将画布锁定,作图过程完成之后,调用utilock过程解除锁定。 TTh此ad类也提供了Synchronize方法。当需要在线程中访问vCL对象属性或调用方法时,通过在Exe-cute中调用Syncllronize过程来避免对vCL的并发访问。程序运行期间的具体过程是由Synchronize过程来通知主线程,然后王线程在适当的时机来执行synchronize过程的参数列表中那个不带参数的函数过程。 重要程序区段保证一次只有一个线程具有访问公共数据块的权利。一旦一个线程进入重要程序段,其他的线程就无法执行这个重要程序段,一直要等到先进入的线程离开以后,其他的线程才可以进入该重要程序段访问共享的变量和数据:在使用TCriticalsection时,必须先用Acqnire进入临界区,访问结束后必须用Release释放临界区。 多线程间的同步:当程序中多个线程同时运行时,可能会使用同一系统资源。或者一个线程的运行要依赖另一个线程的完成。这就存在一个线程间的同步问题。W1N20(多任务操作系统,系统内核提供了事件(Event)、互斥量(Mutex)、信号灯(Sem叩hore)等对象来控制线程间的同步。其中Event对象具有自己的安全属性、访问权限和以下两种状态的一种:Signaled和nonsignaled。声明:本文为转载类文章,如涉及版权问题,请及时联系我们删除(QQ: 229085487),不便之处,敬请谅解!