우리는 ftp 서버에서 xml (최대 500kb) 파일을 다운로드하고 업로드하는 프로그램을 만들고 있습니다. 우리는 업로드 화면을 만들어야합니다. 우리는 세 가지 방법을 시도했다. 첫 번째 방법에서는 그림 상자에 넣은 로딩 화면을 보여주는 .gif 파일을 사용했습니다. 그 다음에 up/download 함수를 처리하기 전에 그림 상자를 보이게하고 함수가 끝나면 보이지 않게 만듭니다. 그러나 그것은 작동하지 않았다 :(여기에 코드입니다. 경우 업로드 코드는 작품을 업로드,이 코드를 사용하여화면 업로드 winforms C#
void upload()
{
FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create("ftp://" + IP + ":" + Port + downdest + xmlfile);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(username, password);
request.UsePassive = true;
request.UseBinary = true;
request.KeepAlive = false;
//Load the file
FileStream stream = File.OpenRead("apartman.xml");
byte[] buffer = new byte[stream.Length];
stream.Read(buffer, 0, buffer.Length);
stream.Close();
//Upload file
Stream reqStream = request.GetRequestStream();
reqStream.Write(buffer, 0, buffer.Length);
reqStream.Close();
}
그러나 우리는 사진을 볼 해달라고 : 여기
private void button2_Click(object sender, EventArgs e)//upload button
{
picturebox1.visible=true; //.gif file
upload();
picturebox1.visible=false;
}
가 업로드 기능이다는
그런 다음 우리는 멀티 스레딩을 시도했다. 우리가 어느 로딩 화면이 표시되지 않는 작동하지 않습니다,하지만 C#을 우리가 별도의 스레드에서이 코드를 사용하는 것을 허용하지 않습니다.
picturebox1.visible=true;
,
다음과 같이 말합니다 : "당신은이 bla bla라고 부를 수 없습니다 ...". 기억이 나지 않으며 누락 된 정보에 대해 유감스러운 코드도 삭제되었습니다.
public Form1()
{
CheckForIllegalCrossThreadCalls = false;
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)//upload button
{
backgroundWorker1.RunWorkerAsync();
}
private void upload()
{
backgroundWorker1.ReportProgress(i);
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
//upload
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
MessageBox.Show("upload complete");
}
이 코드는 내용의 오류 메시지가 있습니다 :
는 마지막으로 우리가있는 BackgroundWorker를 사용하는 TRED, 여기에 코드입니다오류 1 파일이 잘못된 값 ","업데이트 "가 : ". path.xml2의 잘못된 문자
로딩 화면을 프로그래밍하는 올바른 방법을 아는 사람이 있습니까?
자세한 내용이 필요하시면 질문에 확실하게 답변 할 수 있습니다.