C#基础之通过任务开启线程
Posted zhangyang4674
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#基础之通过任务开启线程相关的知识,希望对你有一定的参考价值。
通过任务开启的线程方法不能有参数不能有返回值
通过任务开启线程有两种方法
第一种方法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 任务开启线程 class Program static void Main(string[] args) Task task = new Task(test);//将线程放入任务task中 task.Start();//开启任务,就会执行线程 Task task1 = new Task(test1); task1.Start(); Console.ReadKey(); static void test()//线程1 Console.WriteLine("a"); static void test1()//线程2 Console.WriteLine("b");
第二种方法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 任务开启线程 class Program static void Main(string[] args) TaskFactory tf = new TaskFactory(); Task task = tf.StartNew(test);//将方法交给任务后,开启任务,执行test Console.ReadKey(); static void test()//线程1 Console.WriteLine("a");
任务的知识
连续任务:一个任务必须再另一个任务结束时才能执行
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 任务开启线程 class Program static void Main(string[] args) Task task1 = new Task(test1); Task task= task1.ContinueWith(test);//任务task必须在task1任务执行后在执行,且task此时已近启动该线程了 task1.Start(); Console.ReadKey(); static void test(Task t)//线程1 Console.WriteLine("a"); static void test1()//线程1 Console.WriteLine("b");
任务层次结构
在一个任务中启动了一个新任务,如果父任务执行完,子任务未执行完,则父任务的状态是WaitForChildrenToComplete
如果父任务执行完了,子任务也执行完了,则父任务的状态是RunToComplete
以上是关于C#基础之通过任务开启线程的主要内容,如果未能解决你的问题,请参考以下文章