I have a simple silverlight multifile upload application, and i want to provide the user with some feedback, right now its only in a test phase and i dont have the webservice. Somehow i cant get the ui to update:
private void DoUpload()
{
foreach (UploadFile file in fileInfos)
{
int BUFFERSIZE = 1024;
int offset = 0; //get from webservice, when partial file
FileStream s = file.FileInfo.OpenRead();
byte[] buffer = null;
long remainingBytes = s.Length - offset;
while (remainingBytes > 0)
{
if (remainingBytes < BUFFERSIZE)
{
buffer = new byte[remainingBytes];
BUFFERSIZE = (int)remainingBytes;
}
else if (remainingBytes > BUFFERSIZE)
{
buffer = new byte[BUFFERSIZE];
}
s.Read(buffer, 0, BUFFERSIZE);
//push to webservice
offset += BUFFERSIZE;
int newPercentage = offset / (int)file.FileInfo.Length * 100;
file.Percentage = newPercentage;
remainingBytes = s.Length - offset;
System.Threading.Thread.Sleep(10);
}
file.Percentage = 100;
file.ImageSource = "accept.png";
}
}
The UploadFile is bound to the ui, so changes to this file will reflect in the UI, Problem is that all this upload takes too long (simulated it with the sleep) and during that tie UI is not getting updated, any idea on how to go about doing this?