loner_li windows 多线程实例 文件下载、面积计算、多线程下载等
2013-07-02 09:21
267 查看
详细代码:
private void button1_Click(object sender, EventArgs e)
{
ThreadStart start = new ThreadStart(DownLoad);
Thread thread = new Thread(start);
thread.Start();
//MessageBox.Show("下载完成");
}
private void Mianji(object r)
{
double result = Math.PI * Convert.ToInt32(r) * Convert.ToInt32(r);
this.Invoke(new Action(delegate()
{
MessageBox.Show(result.ToString());
}));
}
private void DownLoad()
{
for (int i = 30000; i < 30010; i++)
{
try
{
using (WebClient client = new WebClient())
{
client.DownloadFile(@"http://job.cnblogs.com/offer/" + i + "/", @"e:\movices\" + i
+ ".html");
//使用匿名委托的简写方式
this.Invoke(new Action(delegate()
{
this.textBox1.AppendText("第" + i + "个帖子已经下载完成\n");
}));
}
}
catch (Exception ex) { }
}
Action action = new Action(Msg);
this.Invoke(action);
}
private void Msg()
{
MessageBox.Show("下载完成");
}
private void button2_Click(object sender, EventArgs e)
{
ParameterizedThreadStart start = new ParameterizedThreadStart(Mianji);
Thread thread = new Thread(start);
thread.Start(5);
}
//使用线程池下载帖子
private void button3_Click(object sender, EventArgs e)
{
//这么写其实只是让线程池启动了一个线程,没有利用多线程来操作
WaitCallback wait = new WaitCallback(DownLoadThreadPool);
ThreadPool.QueueUserWorkItem(wait);
}
private void DownLoadThreadPool(object obj)
{
for (int i = 30000; i < 30010; i++)
{
try
{
using (WebClient client = new WebClient())
{
client.DownloadFile(@"http://job.cnblogs.com/offer/" + i + "/", @"e:\movices\" + i
+ ".html");
//使用匿名委托的简写方式
this.Invoke(new Action(delegate()
{
this.textBox1.AppendText("第" + i + "个帖子已经下载完成\n");
}));
}
}
catch (Exception ex) { }
}
Action action = new Action(Msg);
this.Invoke(action);
}
//线程池多线程下载
private void button4_Click(object sender, EventArgs e)
{
for (int i = 30000; i < 30020; i++)
{
WaitCallback wait=new WaitCallback(DownLoadThreadPool2);
ThreadPool.QueueUserWorkItem(wait, i);
}
}
private void DownLoadThreadPool2(object obj)
{
try
{
using (WebClient client = new WebClient())
{
client.DownloadFile(@"http://job.cnblogs.com/offer/" + Convert.ToInt32(obj) + "/", @"e:\movices\"
+ Convert.ToInt32(obj) + ".html");
//使用匿名委托的简写方式
this.Invoke(new Action(delegate()
{
this.textBox1.AppendText("第" + Convert.ToInt32(obj) + "个帖子已经下载完成\n");
}));
}
}
catch (Exception ex) { }
}
相关文章推荐
- QT5开发及实例1 计算圆周面积 之新建项目文件
- Android实例:多线程文件下载+在线音乐播放+清除下载文件
- python 多线程将大文件分开下载后在合并的实例
- 解析php多线程下载远程多个文件的实例代码
- 我的Java开发学习之旅------>Java多线程下载文件 实例
- Python实现多线程下载文件的代码实例
- loner_li windows 大文件拷贝 实例
- Java多线程下载文件实例详解
- Python实现多线程下载文件的代码实例
- Python多线程下载文件实例代码
- python网络编程之文件下载实例分析
- 多线程断点下载文件
- struts2开发文件上传下载的简单实例
- 用Java EE 5实现的网上书店实例文件下载- (NetBeans 6.0)
- 基于select I/O模型的远程目录浏览与多线程文件下载
- 一个使用Servlet文件实现文件下载的实例
- 《突破C#编程实例五十讲》源文件下载(3)
- 28.java多线程实现文件的下载
- 基于HTTP的多线程文件下载功能实现