delphi中主线程如何等以另一个线程执行完在执行
if FPlayFileHandle > 0 then
begin
MyThread := TMyThead.Create(True);
MyThread.FPlayFileHandle := FPlayFileHandle;
MyThread.Resume;
nret := WaitForSingleObject(hMutex, INFINITE);
ReleaseMutex(hMutex);
end;
子线程中关键代码:
hMutex := CreateMutex(nil, false, nil);
while true do
begin
nPos := BSR_DVR_DownFileGetPos(FPlayFileHandle) div 10;
if (npos < 0) or (npos >= 100) then
begin
FreeOnTerminate := True;
CloseHandle(hMutex);
我就是不知道这样的对互斥变量操作过程能让子线程先执行完吗,网上查资料可以的,可是子线程没执行完,主线程就接着执行了,请问大家我那个地方出问题了,怎么改?
相关推荐
利用handler实现主线程向子线程中发送消息
既然我们知道了handler的工作原理,那么假设我们将子线程和主线程调换位置,在子线程中执行Looper.prepare()方法和Looper.loop()方法,以实现主线程给子线程发送消息。这是测试项目的简单界面点击上边的按钮子线程给主线程发消息,点击下边的按钮主线程给子线程发消息。首先实现子线程发消息的 final Handler handler = new Handler(){ @Override public void handleMessage(Message msg){ Log.d(“MainT
Delphi中多线程用消息实现VCL数据同步显示
Delphi中多线程用消息实现VCL数据同步显示Lanno Ckeeke 2006-5-12概述:delphi中严格区分主线程和子主线程,主线程负责GUI的更新,子线程负责数据运算,当数据运行完毕后,子线程可以向主线程式发送消息,以便通知其将VCL中的数据更新。实现:关键在于消息的发送及接收。在消息结构Tmessage中wParam和lParam类型为Longint,而指针
WIN32下DELPHI中的多线程【深入VCL源码】(一)
线程的基础知识 线程的组成。线程有两部分组成。 1、一个是线程的内核对象,操作系统用它来对线程实施管理。内核对象也是系统用来存放线程统计信息的地方。 2、另一个是线程堆栈,它用于维护线程在执行代码时需要的所有函数参数和局部变量。 进程从来不执行任何东西,它只是线程的容器。线程总是在某个进程环境中创建的,而且它的整个寿命期都在该进程中。这意味着线程在它的进程地址空间
掌握DELPHI多线程技术:实战指南
在计算机科学中,多线程(Multithreading)是一种编程范式,允许一个程序中包含两个或多个部分同时执行,这些部分被称为线程。每个线程可以视为独立的执行路径,它们共享程序的全局数据,但具有自己的调用栈和程序计数器。多线程能够提升应用程序的性能,允许在等待I/O操作或处理慢速任务时,CPU继续执行其他线程。
Delphi 线程TThread中的Synchronize()方法
RAD Studio 10.3.3 测试√ 关于线程也可以看看这篇:Delphi 线程的开始、暂停、继续、停止 目录窗体情况:代码: 小知识: RTL(Run-Time library),运行时库,包括System、SysUtils、Math三个单元,提供的函数与语言、编译器、操作系统及进程有关,RTL提供类之间继承于 TObject 和 RTL内部的类 VCL(Visual Component Library),可视化组件库,包括Graphics、classes、Controls等与类和组件


