如此的调用线程,为何不起作用?
线程类
==================================================================
调用线程的方法一
==================================================================
调用线程的方法二
==================================================================
问题:为何方法二调用线程时主程序仍假死呢?而方法一调用线程则主程序不受影响。
unit uTSavePic;
interface
uses
Classes, StdCtrls, ComCtrls, ExtCtrls, Graphics, SysUtils;
type
TSavePic = class(TThread)
private
protected
public
constructor create;
procedure Execute; override;
procedure SendPic;
end;
implementation
constructor TSavePic.create;
begin
FreeOnTerminate:=true;
inherited create(false);
end;
procedure TSavePic.Execute;
begin
//访问一个不存在的网路路径,这会使用很长时间
end;
procedure TSavePic.SendPic;
begin
//访问一个不存在的网路路径,这会使用很长时间
end;
end.
==================================================================
调用线程的方法一
TSavePic.Create;==================================================================
调用线程的方法二
var
nTSavePic:TSavePic;
begin
nTSavePic:=TSavePic.Create;
nTSavePic.SendPic;
==================================================================
问题:为何方法二调用线程时主程序仍假死呢?而方法一调用线程则主程序不受影响。
...全文
相关推荐
Java多线程实现异步调用实例
异步调用是在多线程环境中实现的,其中一个线程(通常是主线程)发起一个请求,然后立即返回,无需等待该请求的结果。这使得调用者可以继续执行其他任务,而不会被阻塞。
C#跨线程调用控件的四种方式(调用实例源码)
下面我们将详细介绍C#中实现跨线程调用控件的四种常见方法,并提供相应的调用实例源码。1. **控件的Invoke方法** 这是最常用且最直接的方法。
C#跨线程调用控件的四种方式
为了解决这个问题,开发者需要使用特定的方法来跨线程安全地调用控件。以下就是C#中非控件创建线程调用控件的四种主要方式:1.
Unity异步线程调用主线程脚本
Unity异步线程调用主线程脚本程序,在Unity中异步线程调用主线程会报错,所以编写了一个Loom
Java多线程实现异步调用的方法
Java多线程实现异步调用是提高程序效率的关键技术之一。在Java中,通过创建新线程并让它们独立运行来实现异步调用,这样可以使得主线程不被长时间阻塞,从而提高程序的响应速度。


语言基础/算法/系统设计
