如何让程序无法响应用户控制(100分)

  • 主题发起人 主题发起人 ddzhouqian
  • 开始时间 开始时间
D

ddzhouqian

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序的主线程里调用(dll)里的一个函数大致调用时间需要5秒钟,在这段时间内(5秒内),我对程序进行其他控制,有时会出现程序无法响应(假死,无法控制等状态)。
我想在这5秒内不让用户对程序进行控制,如何处理?
或是有其他办法来处理(不出现无法响应或者假死状态),请各位给个思路。谢谢
 
进度条啊,就是用来干这种事情的。
 
ShowModal一个窗体,窗体上放一个进度条之类的东西。
 
to nicai_wgl,onyliu,Corn3三位的意思是不是都是通过showmal一个窗体来控制(进度条用来做显示的?)
除了这种方式还有其他的方法吗?集思广益啊,呵呵
 
好像还是不行哦,还是会当掉
 
当然,你的进度条要是自动更新的,要靠你的函数来更新那是不行的。
 
主窗体的Enable := False;
 
to :nicai_wgl,“当然,你的进度条要是自动更新的,要靠你的函数来更新那是不行的。” 那如何做?
 
看我楼上
 
to :迷途的羔羊:
多线程可否具体?
 
用多线程吧
unit unit1;

interface

uses
Classes;

type
TMyThread = class(TThread)
public
procedure Execute; override;
end;

procedure InitThread;

implementation

procedure InitThread;
var
MyThread: TMyThread;
begin
MyThread.Create(True); //创建线程并挂起
...
... //一些初始化代码 按需要 可有可无
...
...
MyThread.Resume; //激活线程
end;

procedure TMyThread.Execute; //线程执行
var
I: Integer;
begin
... 你读DLL的代码放这里
...
...
end;
 
后退
顶部