Inno设置信号量非GUI阻止

时间:2015-01-20 14:05:42

标签: inno-setup semaphore

我有一个调用DLL的Inno Setup脚本。 DLL启动一个线程,最后调用Inno Setup中的函数指针。 由于我不想改变我的Inno脚本的逻辑,我想使用信号量或类似的东西。

这里的重要部分是gui不应该被封锁。

这里有一小段我的代码

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的等效信号?

0 个答案:

没有答案