我有一个Inno Setup的脚本调用DLL。 该DLL启动一个线程这到底调用了Inno Setup的函数指针。 因为我不希望我的Inno脚本的逻辑改变多少,我想用一个信号量或类似的东西。
在这里最重要的部分是图形用户界面不应该被阻止。
在这里我的一小段代码
procedure InstallData();
var
arrComponents : TStringList;
i, index, p : Integer;
countComp : Integer;
begin
countComp := ICountComponents();
pbState.Max:= countComp;
arrComponents := IGetComponentsToInstall();
pbState.Max := countComp;
for i := 0 to countComp-1 do
begin
// lock semaphore
pbState.Position := i;
p := Pos(' ', arrComponents[i]);
if p > 0 then
begin
//Unzip component
//Call the DLL
end
else
begin
//unzip something else
//Call the DLL
end
end
end;
procedure ProgressCallback(progress:Integer);
begin
pbStateZip.Position:= progress;
//if progress = 100
// unlock semaphore
//
end;
有没有信号灯或者是有一个相当于这个不挡住我的GUI?