3
나는이 클래스를 가지고있다. 나는 웹 서비스를 사용하여 이것을하고있다. 내 UI에서 양방향 바인딩을 만들었으므로 이제 파일을 업로드하려고합니다. 나는 문제는 내가 UI, 또는 크로스 스레드 작업을 업데이트 할 수 있다는 것입니다이 코드실버 크로스 스레드의 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
Thread.Sleep(20);
//UploadService.Service1SoapClient client = new MultiLargeFileUpload.UploadService.Service1SoapClient();
//client.LargeUploadCompleted +=new EventHandler<AsyncCompletedEventArgs>(client_LargeUploadCompleted);
//client.LargeUploadAsync(1, buffer, file.Name);
offset += BUFFERSIZE;
int newPercentage = offset/(int)file.FileInfo.Length * 100;
file.Percentage = newPercentage;
remainingBytes = s.Length - offset;
}
//file.Percentage = 100;
//file.ImageSource = "accept.png";
}
}
를 사용하여이 일을하고있다. Dispatcher를 사용하려고했지만 삽입 할 위치를 알지 못했기 때문에 성공적이지 못했습니다.