Hi Eric,
> Other ideas ?
Well I don't know what your requirement is, but I have quite a bit of
background processing going on (eg playing a video in the foreground
while taking photos and clips in the background, also any warnings are
emailed electronically to me, any emails sent by the user are sent in
the background to avoid delays as they all have large attachments) and I
have a queue for each one.
So I use a Wx::Timer to process all the queues. I set priorities so
that only one media item can be processed at a time and one email. But
then I use threads to set them running in the background and my user
carries on with their work. There is no perceptible delay to the user.
Emails are quite slow, or can be, but they are in a separate queue and
it doesn't take much cpu, but a lot of bandwidth. Media items can take
up about 80% of 1 core, it's a four-core i5. So the user has nearly two
cores dedicated to normal work.
I give visual feedback to the user by changing the colour of items. For
instance there is a video progress bar, and I put marks on it for each
clip or photo. It starts green and then Wx::Timer changes it to grey
when processed, but it is so quick (usually less then a second), so I
hardly need to do it.
Finally, I don't let the user log out until processing is finished.
What is your requirement?
Steve.