I want the installer to be able to do multiple things at once (effectively multi threading), and I want each "thread" to be able to check the progress of the other things going on at the same time.
An example is if I want to download a file (bandwidth intensive), extract a compressed file (CPU intensive), and copy a large file (HD intensive) all at the same time, so the installer completes faster.
So say for my script (this is sudocode):
Is that possible, preferably without too many modiications to sll the c++ modules?
NSISdl::startDownload("http://abc.com/myfile")
Copyfile::Start "filea.iso" "fileb.iso"
Zip::StartExtract "bigzip.zip" "*.*"
loop:
progress=(NSISdl:😛rogress)+(CopyFile:😛rogress)+(Zip:😛rogress) / 3
if (NSISdl::done)&&(CopyFile::done)&&(Zip::done) goto done
delay 1000
goto loop
done:
msgbox("everythings done")