C#多线程技术

一、        线程声明
1、函数内部声明
ThreadListen = new Thread(delegate()
{
     this.ShuiYinAdd(i);
});
//ThreadListen.Name = "ThreadServer";
ThreadListen.IsBackground = true;
ThreadListen.Start();

2、声明线程函数
//声明
public void Recv()
{
}

//启动线程,利用函数名作为构造参数
ThreadRecv = new Thread(this.Recv);
ThreadRecv.Name = "ThreadRecv";
ThreadRecv.IsBackground = true;//可以结束线程
ThreadRecv.Start();

3、声明带参数线程函数
//声明,参数必须为object类型
public void Accept(object ObjClient)
{
    Client = (TcpClient)ObjClient;
    //…
}

//启动线程,用Start传递参数
ThreadAccept = new Thread(new ParameterizedThreadStart(this.Accept));
ThreadAccept.Name = "ThreadAccept";
ThreadAccept.IsBackground = true;//可以结束线程
ThreadAccept.Start(Client);



二、        线程技巧:
1、        在线程间操作控件
在Form()里加上System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;,可以
2、        主窗口结束后,强制结束线程
Thread.IsBackground = true;
3、        线程互斥
Lock
4、        强制退出主进程
Environment.Exit(0);

5、为线程中数值提供原子操作;可取代Lock
Interlocked.Increment(ref Count);


【相关业务说明】

保定市晨域计算机软件开发有限公司
电话:13331218608   QQ:1299073570
旺旺:晨域软件   微信:13331218608
qushuiyin.taobao.com