zoukankan      html  css  js  c++  java
  • 数据采集(天天,百度百家)

    爆文采集系统后台数据支撑:百度百家以及天天快报等等。。

     

    简单采集过程,不再复述。

    重点放在新学的线程以及桌面应用程序:

    1、线程部分,   开始、暂停、继续、结束

     1      public enum opState
     2         {
     3             none,   //无操作
     4             pause,  //暂停
     5             go_on,  //继续
     6             stop    //停止
     7         }
     8         private Thread myThread = null;
     9         private bool myThreadRun = false;
    10         private opState state = opState.none;
    11         private delegate void ShowMsgHandler(string msg);
    12         public Form1()
    13         {
    14             InitializeComponent();
    15         }
    16 
    17         /// <summary>
    18         /// 开始
    19         /// </summary>
    20         private void button1_Click(object sender, EventArgs e)
    21         {
    22             if (myThread == null || myThread.ThreadState == ThreadState.Stopped)
    23             {
    24                 myThreadRun = true;
    25                 myThread = new Thread(new ThreadStart(runPro));
    26                 myThread.IsBackground = true;
    27                 myThread.Start();
    28             }
    29             else
    30             {
    31                 myThreadRun = false;
    32             }
    33         }
    34 
    35         public void runPro()
    36         {
    37             for (int i = 0; i < 10000; i++)
    38             {
    39                 //状态开关控制
    40                 switch (state)
    41                 {
    42                     case opState.pause:
    43                         i--;
    44                         continue;
    45                     case opState.go_on:
    46                         break;
    47                     case opState.none:
    48                         break;
    49                     case opState.stop:
    50                         return;
    51                 }
    52                 if (this.InvokeRequired)
    53                 {
    54                     this.Invoke(new ShowMsgHandler(ShowMsg), i.ToString());
    55                 }
    56                 else
    57                 {
    58                     ShowMsg(i.ToString());
    59                 }
    60                 //Thread.Sleep(100);
    61             }
    62         }
    63         private void ShowMsg(string msg)
    64         {
    65             this.textBox1.AppendText(msg + "
    ");
    66         }
    67 
    68         /// <summary>
    69         /// 暂停
    70         /// </summary>
    71         private void button2_Click(object sender, EventArgs e)
    72         {
    73             state = opState.pause;
    74         }
    75 
    76         /// <summary>
    77         /// 继续
    78         /// </summary>
    79         private void button3_Click(object sender, EventArgs e)
    80         {
    81             state = opState.go_on;
    82         }
    83 
    84         /// <summary>
    85         /// 停止
    86         /// </summary>
    87         private void button4_Click(object sender, EventArgs e)
    88         {
    89             state = opState.stop;
    90             myThreadRun = false;
    91         }

    2、窗体应用程序

    2.1、异步加载输出

    1 this.Invoke(new Action(() =>
    2 {
    3   label2.Text = subject_name;
       textBox.AppendText("" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "】 ----添加新作者:" + writer_name + " " + " "); 5 textBox.ScrollToCaret();//下拉框 6 }));

    2.2、时间插件

    ps:记得修改插件属性Interval的值为1000

     1 private void timer1_Tick(object sender, EventArgs e)
     2         {
     3             Second_++;
     4             if (Second_ == 60)
     5             {
     6                 Second_ = 0;
     7                 Minute_++;
     8             }
     9             if (Minute_ == 60)
    10             {
    11                 Minute_ = 0;
    12                 Hour_++;
    13             }
    14             label7.Text = Hour_ + "" + Minute_ + "" + Second_;
    15         }

    -----------kylin

  • 相关阅读:
    AutoCAD利用VBA设置线型和添加用户自定义线性
    AutoVBA利用for循环创建同心圆弧
    AutoVBA利用Hacth对象填充图元对象
    AutoVBA利用AddArc方法创建Arc对象
    2011年6月5日星期天
    AutoVBA控件的tabindex和tabstop属性及with语句
    AutoVBA在绘图空间创建直线对象
    AutoVBA利用toolbar创建自己的工具栏
    AutoVBA调用AddCricle方法绘制圆
    AutoCAD利用VBA宏绘制多重平行线
  • 原文地址:https://www.cnblogs.com/yishilin/p/7486054.html
Copyright © 2011-2022 走看看