zoukankan      html  css  js  c++  java
  • C# Task

    Task是一种基于任务的编程模型。它与thread的主要区别是,它更加方便对线程进程调度和获取线程的执行结果。

    Task类和thread类,前者接收的是Action委托类型,后者接收的是Func委托类型。

    Task创建:

    (1)直接创建

    var task1 = new Task(() =>{System.Threading.Thread.Sleep(1000);});

    task1.Start();

    (2)工厂创建

    Task.Factory.StartNew(() = {});

    (3)Run运行

    Task.Run(() =>{});

    注:

    开启新任务的方法:Task.Run()或者Task.Factory.StartNew(),开启的是后台线程

    要在主线程中等待后台线程执行完毕,可以使用Wait方法(会以同步的方式来执行)。不用Wait则会以异步的方式来执行。

    thread和Task的区别,thread new多少个就会创建多少个线程,而task是利用线程池中的线程。

    Task其他方法:

    Task.Wait(); 阻塞当前线程

    Task.WaitAll(); 阻赛当前线程

    Task.WaitAny(); 阻塞当前线程直到有任意一个任务执行完毕

    Task.ContinueWith(task=>{});执行完上一个任务后继续执行,并将上一个任务传递给下一个代码块。

  • 相关阅读:
    NYOJ题目916胖子小的百宝袋
    NYOJ题目893十字架
    NYOJ题目874签到
    设计模式之Singleton
    Elo rating system 模拟
    JDBC之SqlHelper
    《Thinking in Java》十四章类型信息_习题解
    NYOJ题目842整除的尾数
    NYOJ题目840吃花生
    NYOJ题目839合并
  • 原文地址:https://www.cnblogs.com/xiaoerduo/p/10328019.html
Copyright © 2011-2022 走看看