zoukankan      html  css  js  c++  java
  • C# async/await 异步编程

    参考地址:

    总结的说一下

    • async 是用来修饰异步方法,await 是用来异步执行方法
    • async/await 要同时使用,否则会当做同步方法
    • 这个与Thread线程池的区别在于,Thread 是会不断的创建,销毁,而Task.Run()每次执行将不会立即创建一个新线程,而是到CLR线程池查看是 否有空闲的线程,有的话就取一个线程处理这个请求,处理完请求后再把线程放回线程池,这个线程也不会立即撤销,而是设置为空闲状态,可供线程池再次调度, 从而减少开销。

    栗子

    具体的详情请看 参考链接,这边只是提供一下如何使用

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web;
    using System.Threading;
    using System.Threading.Tasks;
    
    namespace TestApp
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("-------主线程启动-------");
                Task<int> task = GetLengthAsync();
                Console.WriteLine("Main方法做其他事情");
                Console.WriteLine("Task返回的值" + task.Result);
                Console.WriteLine("-------主线程结束-------");
            }
    
            static Task<int> GetLengthAsync()
            {
                Console.WriteLine("GetLengthAsync Start");
                Task<int> task = Task<int>.Run(() => { string str = GetStringAsync().Result; 
                    Console.WriteLine("GetLengthAsync End"); 
                    return str.Length; });           
                return task;
            }
    
            static Task<string> GetStringAsync()
            {
                return Task<string>.Run(() => { Thread.Sleep(2000); return "finished"; });
            }
        }
    }
    
  • 相关阅读:
    python接口测试3-JSON格式
    python接口测试2-开发WEB接口
    接口测试1-基础
    Apifox接口测试管理工具
    python的pip安装超时问题解决
    ubuntu解决安装速度问题
    vim进入粘贴模式
    禅道数据库
    内存管理
    文件操作
  • 原文地址:https://www.cnblogs.com/Alex-Mercer/p/12661091.html
Copyright © 2011-2022 走看看