Efficiently display file status when using background thread
Posted
by schmoopy
on Stack Overflow
See other posts from Stack Overflow
or by schmoopy
Published on 2010-05-11T21:30:41Z
Indexed on
2010/05/11
21:34 UTC
Read the original article
Hit count: 235
How can i efficiently display the status of a file when using a background thread?
For instance, lets say i have a 100MB file:
when i do the code below via a thread (just as an example) it runs in about 1 min:
foreach(byte b in file.bytes)
{
WriteByte(b, xxx);
}
But... if i want to update the user i have to use a delegate to update the UI from the main thread, the code below takes - FOREVER - literally i don't know how long im still waiting, ive created this post and its not even 30% done.
int total = file.length;
int current = 0;
foreach(byte b in file.bytes)
{
current++;
UpdateCurrentFileStatus(current, total);
WriteByte(b, xxx);
}
public delegate void UpdateCurrentFileStatus(int cur, int total);
public void UpdateCurrentFileStatus(int cur, int total)
{
// Check if invoke required, if so create instance of delegate
// the update the UI
if(this.InvokeRequired)
{
}
else
{
UpdateUI(...)
}
}
© Stack Overflow or respective owner