博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中的多线程使用 -- Thread 类详解(转)
阅读量:5285 次
发布时间:2019-06-14

本文共 1586 字,大约阅读时间需要 5 分钟。

现在C#已经建议摈弃使用 Suspend, Resume 暂停/恢复线程, 也尽量少用 Abort方法中断一个线程.

建议使用线程的同步手段有: Mutex、ManualResetEvent、AutoResetEvent, Monitor.

下面再对此进行详细描述.

Thread类的构造函数有2类:

一种是不带参数(ThreadStart 委托) --

public Thread(ThreadStart start);

另一种是带参数(ParameterizedThreadStart 委托) --

public Thread(ParameterizedThreadStart start);

ParameterizedThreadStart 委托签名:

public delegate void ParameterizedThreadStart(Object obj);

 

示例:

1. 不带参数:

// 定义线程方法:        private static void ThreadMain()        {            Console.WriteLine("This is other thread main method.");        }    // 调用:            Thread mythread = new Thread(ThreadMain);            mythread.Start();

2. 带参数:

// 定义线程方法:        private static void MainThreadWithParameters(object o)        {            Data d = (Data)o;  //类型转换            Console.WriteLine("Running in a thread, received {0}", d.Message);        }    public struct Data    {        public string Message;    }    // 调用:            var data = new Data { Message = "Info" };            Thread t2 = new Thread(MainThreadWithParameters);            t2.Start(data);  // 传入参数

3. 通过定义类传递参数:

// 定义存放数据和线程方法的类:    public class MyThread    {        private string message;        public MyThread(string data)        {            this.message = data;        }        public void ThreadMethod()        {            Console.WriteLine("Running in a thread, data: {0}", this.message);          }    }// 调用            var obj = new MyThread("info");            Thread myThread = new Thread(obj.ThreadMethod); //ThreadStart 委托            mythread.Start();

 

转载于:https://www.cnblogs.com/suanshun/p/5952134.html

你可能感兴趣的文章
IDEA 中Spark SQL通过JDBC连接mysql数据库
查看>>
组合数学之母函数问题
查看>>
JavaScript创建对象之单例、工厂、构造函数模式
查看>>
CodeForces1154F
查看>>
TLS 9.2C
查看>>
CodeForces1214A
查看>>
LuoGuP4551最长异或路径
查看>>
CodeForces1214C
查看>>
CodeForces1214B
查看>>
CodeForces1214D
查看>>
CodeForces727C
查看>>
LuoGuP1351联合权值
查看>>
CodeForces1165
查看>>
【期外】(三)Linux下集成开发环境Geany
查看>>
【算法•日更•第三十二期】教你用出windows体验的Linux
查看>>
【算法•日更•第三十四期】最大流算法
查看>>
【算法•日更•第三十三期】网络流基础知识(最大流)
查看>>
【算法•日更•第三十六期】初赛偷懒攻略
查看>>
【算法•日更•第三十五期】FF算法优化:EK算法
查看>>
【算法•日更•第三十七期】A*寻路算法
查看>>