C#编程应用--线程与委托


1. C#开发C/S程序,有时需要几个端,如服务器端,管理端,客户端等等, 端与端之间是不同线程或者进程,这就涉及跨线程调用的问题,

    使用委托或者异步线程是必不可少的,这里是一个简单的委托线程,即通过委托调用另外一个线程;

 

2. 有图有真相:

   C#编程应用--线程与委托

 

3. 源码:

View Code
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace ThreadControlExample
{
     public  partial  class Form1 : Form
    {
        Thread thread1;
        Thread thread2;
         delegate  void AppendStringDelegate( string str);
        AppendStringDelegate appendStringDelegate;
         public Form1()
        {
            InitializeComponent();
            appendStringDelegate =  new AppendStringDelegate(AppendString);
        }

         private  void AppendString( string str)
        {
           richTextBox1.Text += str;
        }

         private  void Method1()
        {
             while ( true)
            {
                Thread.Sleep( 100);    // 线程1休眠100毫秒
                richTextBox1.Invoke(appendStringDelegate,  " a ");
            }
        }
         private  void Method2()
        {
             while ( true)
            {
                Thread.Sleep( 100);    // 线程2休眠100毫秒
                richTextBox1.Invoke(appendStringDelegate,  " b ");
            }
        }

         private  void buttonStart_Click( object sender, EventArgs e)
        {
            richTextBox1.Text =  "";
            thread1 =  new Thread( new ThreadStart(Method1));
            thread2 =  new Thread( new ThreadStart(Method2));
            thread1.Start();
            thread2.Start();
        }

         private  void buttonStop_Click( object sender, EventArgs e)
        {
            thread1.Abort();
            thread1.Join();
            thread2.Abort();
            thread2.Join();
            MessageBox.Show( " 线程1、2终止成功 ");
        }

    }
}

 

你可能感兴趣的:(C#)