zoukankan      html  css  js  c++  java
  • 利用线程池单线程下载网页信息

    前台:

    一个按钮

    后台:

     private void button3_Click(object sender, EventArgs e)
            {
                //这样写只是让线程池启动了一个线程,没有利用多个线程来操作
                WaitCallback wait = new WaitCallback(DownLoadThreadPool);
                ThreadPool.QueueUserWorkItem(wait);
            }


            private void DownLoadThreadPool(object ojb)
            {
                for (int i = 30000; i < 30020; i++)
                {
                    try
                    {
                        using (WebClient client=new WebClient())
                        {
                            client.DownloadFile(@"http://job.cnblogs.com/offer/" + i + "/", @"d:move" + i + ".html");  // 第一个是网上想要下载的地址,第二个是本地机的地址
                            //使用匿名委托的简写方式
                            this.Invoke(new Action(delegate()
                            {
                                this.textBox1.AppendText("第" + i + "个帖子已经下载完成 ");
                            }));
                        }
                    }
                    catch (Exception ex)
                    { }
                }
                Action action = new Action(Msg1); 
                this.Invoke(action);
            }
            private void Msg1()
            {
                MessageBox.Show("下载完成");
            }

  • 相关阅读:
    关于在组件GIS开发中使用Python的一点补充说明
    shell环境变量以及set,env,export的区别
    快速配置 Samba 将 Linux 目录映射为 Windows 驱动器
    Expect 教程中文版
    rpm 包管理
    .bash_profile和.bashrc的什么区别
    grep 零宽断言
    自动化测试
    dialog shell下的gui设计 代替繁杂libncurses编程
    x11 gtk qt gnome kde 之间的区别和联系
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3146784.html
Copyright © 2011-2022 走看看