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

  • 相关阅读:
    NSSelectorFromString 使用示例
    NSClassFromString 实例话静态库中的类
    iOS Simulator hang up ( Xcode4.6.3)
    RabbitMQ 相关概念和方法详解
    Python pika, TypeError: exchange_declare() got an unexpected keyword argument 'type' 问题修复
    巧用 git rebase 将某一部分 commit 复制到另一个分支
    巧用 git rebase 合并多个 commit。
    分享常用的GoLang包工具
    Laradock使用教程(新手版)
    PHP中抽象类与接口的区别
  • 原文地址:https://www.cnblogs.com/zhangyang4674/p/11414701.html
Copyright © 2011-2022 走看看