zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    2021年《jmeter高级调优项目实战》秋季班(火热报名中!)
    Jmeter分布式压力测试过程可能遇到的各种坑
    Python编程与数据结构
    Xftp 提示需要升级
    [学习笔记]LGV引理
    PyTorch模型训练特征图可视化
    测试PostGIS是否安装成功
    sift算法使用
    IDEA中Maven Projects里项目灰色解决办法
    SpringCloud从入门到进阶(一)——懂生活就懂微服务
  • 原文地址:https://www.cnblogs.com/zhangyang4674/p/11414701.html
Copyright © 2011-2022 走看看