技术开发 频道

C#编程:如何实现多线程文件传输

  //接收的起始位置及接收的长度

  request.AddRange(formm.filestartw [threadh],

  formm.filestartw [threadh]
+formm.filesizew [threadh]);

  ns
=request.GetResponse ().GetResponseStream ();//获得接收流

  nreadsize
=ns.Read (nbytes,0,512);

  
while (nreadsize>0)

  {

  fs.Write (nbytes,
0,nreadsize);

  nreadsize
=ns.Read (nbytes,0,512);

  formm.listBox1 .Items .Add (
"线程"+threadh.ToString ()+"正在接收");

  }

  fs.Close();

  ns.Close ();

  }

  catch (Exception er)

  {

  MessageBox.Show (er.Message );

  fs.Close();

  }

  formm.listBox1 .Items.Add (
"进程"+threadh.ToString ()+"接收完毕!");

  formm.threadw[threadh]
=true;

  }

  }

  该类和Form1类处于统一命名空间,但不包含在Form1类中。下面定义“开始接收”按钮控件的事件响应函数:

  private void button1_Click(object sender, System.EventArgs e)

  {

  DateTime dt
=DateTime.Now;//开始接收时间

  textBox1.Text
=dt.ToString ();

  strurl
=textBox2.Text .Trim ().ToString ();

  HttpWebRequest request;

  
long filesize=0;

  try

  {

  request
=(HttpWebRequest)HttpWebRequest.Create (strurl);

  filesize
=request.GetResponse ().ContentLength;//取得目标文件的长度

  request.Abort ();

  }
0
相关文章