线程学习_简单线程

2015-12-24 22:01:59  访问(2220) 赞(0) 踩(0)



  • 
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void toolStripButton_启动_Click(object sender, EventArgs e)
            {
                try
                {
                    MainThreadStart();
                }
                catch (Exception err)
                {
                    MsgForm.MsgException(err);
                }
    
            }
    
            /// <summary>
            /// 线程
            /// </summary>
            Thread execThread = null;
    
    
             
            /// <summary>
            /// 启动线程
            /// </summary>
            protected void MainThreadStart()
            {
                execThread = new Thread(new ThreadStart(ExecThreadRunProcess));
                // 设为后台线程 //
                execThread.IsBackground = true;
                execThread.Name = "Thread-1";
                execThread.Start();
    
            }
    
            /// <summary>
            /// 
            /// </summary>
            protected void ExecThreadRunProcess()
            {
                Thread ch = Thread.CurrentThread;
    
                string strName = "";
    
                if (ch != null)
                    strName = ch.Name;
    
                for (int i = 0; i <= 20; ++i)
                {
                    AddText(strName + ":run == " + i.ToString() 
                        + " times[" + DateTime.Now.ToString("HH:mm:ss") + "]" 
                        + System.Environment.NewLine);
    
                    System.Threading.Thread.Sleep(2000);
                }
    
                AddText(strName + ":end " + DateTime.Now.ToString("HH:mm:ss") + "]"
                        + System.Environment.NewLine);
    
            }
    
    
    
           
            /// <summary>
            /// 通过委托实现线程对控件RichTextBox设置值
            /// </summary>
            /// <param name="str"></param>
            delegate void AddTextCallback(string str);
    
    
         
            /// <summary>
            /// 通过委托实现线程对控件RichTextBox设置值
            /// </summary>
            /// <param name="str"></param>
            protected void AddText(string str)
            {
                if (this.InvokeRequired)
                {
                    AddTextCallback d = new AddTextCallback(AddText);
    
                    this.Invoke(d, new object[] { str });
    
                    return;
                }
    
                RichTextBox rtb = richTextBox_Output;
    
                rtb.AppendText(str);
                rtb.Focus();
                rtb.Select(richTextBox_Output.TextLength, 0);
                rtb.ScrollToCaret();  
            }
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void toolStripButton_线程状态_Click(object sender, EventArgs e)
            {
                try
                {
                    if (execThread != null)
                    {
                        MessageBox.Show(execThread.ThreadState.ToString());
                    }
                }
                catch (Exception err)
                {
                    MsgForm.MsgException(err);
                }
            }
    
    

标签:线程学习_简单线程 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)