나는 간단한 실버 라이트 멀티 파일 업로드 응용 프로그램을 가지고 있으며, 사용자에게 약간의 피드백을 제공하고 싶습니다. 지금은 테스트 단계에만 있으며, 나는 웹 서비스가 없습니다. 어떻게 든 업데이트 UI를 얻을 캔트 :Silverlight, 처리 중 UI 업데이트
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";
}
}
이 파일의 변경이 UI에 반영됩니다 있도록 UploadFile로는, 인터페이스에 바인딩을, 문제는이 모든 업로드 (너무 오래 걸리는 잠을 시뮬레이션이다) 그리고 그 넥타이 UI가 업데이 트되지 않는 동안,이 일을 어떻게 가야하는지에 대한 아이디어?
그러나 호출이 비동기이면 imediately 반환하기 때문에 내 피드백을 할 수 없을 것이라고? 반환 사건은 어떻습니까? 어떤 파일이 반환 이벤트의 원본인지 어떻게 알 수 있습니까? 한 번에 여러 파일을 업로드한다고 가정합니다. – H4mm3rHead