Hi Alex,
How do you imagine 5 separate progress dialogs running at the same time?
An example would be how Windows does copy operation for multiple copy operations. Older Windows versions would display separate "standalone" progress dialogs for each copy operation. Newer Windows would have one dialog with multiple progress bars.
Probably you can use one parent progress dialog and let the operation use it's parts as a subprogress... For that we have the IAUX_Inst::CreateStdRangeProgressMon method.... But, that will work if you have a operation, that is being launched in the separate thread and it calls few other operations in the same thread.
Thanks for explanation , but I still do not quite get the idea of CreateStdRangeProgressMon
for *one* "multi step" operation (never mind now I'm running multiple operations in parallel)
If I would have as above, one "parent" operation with multiple "child" operations, why not simply use Inst.DefaultProgressMon ? Say the "parent" operation does 3 "separate" operations (in the same thread). Op1 has 3 steps, Op2 has 10 steps and Op3 has 7 steps. In total that is 20 steps. I could set Duration to 20 and simply set the Pos one step at the time: first 3 steps while Op1, then +10 steps while Op2 and finally +7 steps for Op3.
I do not see why, in the above, I would need to use CreateStdRangeProgressMon?
p.s.
Anyhow, what I'm doing right now is: using DefaultProgressMon. In each step of every operation (being run in different threads) I'm setting both the Duration and the Pos (and Text, Title) related to the "current" operation.
This works.
Yes, it has a weird looking effect since you constantly see progress values (both pos and duration and therefore %) being changed - but it is usable and does provide some feedback.
-žarko