delphi中主线程如何等以另一个线程执行完在执行

wangxiubing04535 wangxiubing04535 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我有个主线程中要创建一个线程。线程中主要判断某个任务完成没有,是一个while循环,没执行完就等待。主线程要等子线程执行完才能往下执行,所以我用了个互斥句柄,主线程关键代码是这样子的:
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,而指针

maxcode

WIN32下DELPHI中的多线程【深入VCL源码】(一)

线程的基础知识      线程的组成。线程有两部分组成。     1、一个是线程的内核对象,操作系统用它来对线程实施管理。内核对象也是系统用来存放线程统计信息的地方。     2、另一个是线程堆栈,它用于维护线程在执行代码时需要的所有函数参数和局部变量。     进程从来不执行任何东西,它只是线程的容器。线程总是在某个进程环境中创建的,而且它的整个寿命期都在该进程中。这意味着线程在它的进程地址空间

wudi_1982

掌握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等与类和组件

小印丶
评论 25
收藏 已收藏
分享
返回顶部
wangxiubing04535
Delphi 5,944 成员 262,941 内容