C#基础系列:多线程的常见用法详解
作者:网络转载 发布时间:[ 2016/3/3 11:25:53 ] 推荐标签:.NET 测试开发技术 线程
前言:此篇主要从博主使用过的几种多线程的用法从应用层面大概介绍下。文中观点都是博主个人的理解,如果有不对的地方望大家指正~~
1、多线程:使用多个处理句柄同时对多个任务进行控制处理的一种技术。据博主的理解,多线程是该应用的主线程任命其他多个线程去协助它完成需要的功能,并且主线程和协助线程是完全独立进行的。不知道这样说好不好理解,后面慢慢在使用中会有更加详细的讲解。
2、多线程的使用:
(1)简单、原始的使用方法:Thread oGetArgThread = new Thread(new ThreadStart(() =>{});这种用法应该大多数人都使用过,参数为一个ThreadStart类型的委托。将ThreadStart转到定义可知:
public delegate void ThreadStart();
它是一个没有参数,没有返回值的委托。所以他的使用如下:
static void Main(string[] args)
{
Thread oGetArgThread = new Thread(new ThreadStart(Test));
oGetArgThread.IsBackground = true;
oGetArgThread.Start();
for (var i = 0; i < 1000000; i++)
{
Console.WriteLine("主线程计数" + i);
//Thread.Sleep(100);
}
}
private static void Test()
{
for (var i = 0; i < 1000000; i++)
{
Console.WriteLine("后台线程计数" + i);
//Thread.Sleep(100);
}
}
定义一个没有参数没有返回值的方法传入该委托。当然也可以不定义方法写成匿名方法:
static void Main(string[] args)
{
Thread oGetArgThread = new Thread(new System.Threading.ThreadStart(() =>
{
for (var i = 0; i < 1000000; i++)
{
Console.WriteLine("后台线程计数" + i);
//Thread.Sleep(100);
}
}));
oGetArgThread.IsBackground = true;
oGetArgThread.Start();
}
这个和上面的意义相同。得到的结果如下:
c#基础系列
说明主线程和后台线程是互相独立的。由系统调度资源去执行。
如果这样那有人要问了,如果我需要多线程执行的方法有参数或者有返回值或者既有参数又有返回值呢。。。别着急我们来看看new Thread()的几个构造函数:
public Thread(ParameterizedThreadStart start);
public Thread(ThreadStart start);
public Thread(ParameterizedThreadStart start, int maxStackSize);
public Thread(ThreadStart start, int maxStackSize);
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11