首页 > 其他分享 >async await 异步运行

async await 异步运行

时间:2023-05-04 19:33:06浏览次数:34  
标签:异步 Task Console res DoTwo await WriteLine async

测试代码:

class Program
{
    static void Main(string[] args)
    {
        TestAsync testAsync = new TestAsync();
        System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
        stopwatch.Start();
        Task<bool> resOne = testAsync.DoOne();
        Task<bool> resTwo = testAsync.DoTwo();
        Task.WaitAll(resOne, resTwo);
        stopwatch.Stop();
        Console.WriteLine($"耗时{stopwatch.Elapsed.TotalSeconds}");
        Console.WriteLine($"结果{resOne.Result} {resTwo.Result}");

        Console.ReadKey();
    }
}


public class TestAsync
{
    public async Task<bool> DoOne()
    {
        Console.WriteLine("进入 DoOne");
        bool res = await Task.Run(() =>
        {
            Thread.Sleep(1000);
            return false;
        });

        return res;
    }

    public async Task<bool> DoTwo()
    {
        Console.WriteLine("进入 DoTwo");
        bool res = await Task.Run(() =>
        {
            Thread.Sleep(2000);
            return true;
        });

        return res;
    }
}

测试结果:

进入 DoOne
进入 DoTwo
耗时2.0412127
结果False True

标签:异步,Task,Console,res,DoTwo,await,WriteLine,async
From: https://www.cnblogs.com/huvjie/p/17372280.html

相关文章

  • 《asyncio 系列》5. 基于 asyncio + SQLAlchemy 并发请求数据库
    楔子上一篇文章探讨了使用aiohttp库发出非阻塞Web请求,还讨论了使用几种不同的异步API来同时运行这些请求。通过结合asyncioAPI和aiohttp库,可以同时运行多个耗时的Web请求,从而提高应用程序的运行速度。但我们上一章学到的概念不仅适用于Web请求,也适用于运行SOL查......
  • 异步电机的无传感器矢量控制,matlab,仿真模型,控制算法为MRAS模型参考自适应。
    异步电机的无传感器矢量控制,matlab,仿真模型,控制算法为MRAS模型参考自适应。ID:44100668158918155......
  • 异步电机有速度传感器矢量控制,matlab,仿真模型。
    异步电机有速度传感器矢量控制,matlab,仿真模型。转速外环电流内环。双闭环控制,控制精度高,响应速度快,抗负载扰动性能强。加入了电流滞环控制。ID:6369668159274320......
  • 《asyncio 系列》4. 如何并发运行多个任务(asyncio.gather、asyncio.as_completed、asy
    楔子在上一篇文章中,我们了解了套接字的内部工作原理,并构建了一个基本的回显服务器。现在我们将学到的知识应用到并发的、非阻塞的Web请求中,基于asyncio可以并发发送大量的Web请求,缩短应用程序的运行时间。当我们必须向一组RESTAPI发出多个请求时,这很有用,比如在微服务架......
  • Android开发中立即停止AsyncTask和…
    程序开发中经常会有立即停止线程运行的需要,而通过api是没有办法实现这个目的的,因此对于这个情况,我们需要采取一些“特殊”的方式来实现:  1,判断标志位的办法:  我们要知道在java的线程中,没有办法停止一个正在运行中的线程。在Android的AsyncTask中也是一样的。如果必须要停......
  • Vue 异步通信Axios
    使用Axios实现异步通信需要先导入cdn:<scriptsrc="https://unpkg.com/[email protected]/dist/axios.min.js"></script>使用到的数据data.json{"name":"kuang","url":"https://www.bilibili.com/?spm_id_from=333.788.0......
  • 异步爬虫例子之asyncio
    异步爬虫例子:importtimeimportaiohttpimportasyncioimportreimportosos.environ['NO_PROXY']='www.baidu.com'classAsyn():def__init__(self):self.__headers={'authority':......
  • 《asyncio 系列》3. 详解 Socket(阻塞、非阻塞),以及和 asyncio 的搭配
    楔子在前面两篇文章中,我们介绍了协程、任务和事件循环,研究了如何同时运行长耗时的操作,并探索了一些可以优化此操作的asyncioAPI。然而,到目前为止,我们只是用asyncio.sleep函数模拟了长时间的操作。由于我们想要构建的不仅是演示应用程序,因此我们将使用一些真实世界的阻塞操作......
  • 《asyncio 系列》2. 详解 asyncio 的协程、任务、future,以及事件循环
    楔子上一篇文章我们深入讨论了并发性,探讨了如何同时使用进程和线程实现并发,还探索了如何利用非阻塞IO和事件循环来实现只使用一个线程的并发性。本篇文章将介绍在asyncio中使用单线程并发模型编写程序的基础知识,使用本文中的技术,你将能执行长时间运行的操作,如Web请求、数据......
  • 论并行,并发,同步,异步之间的联系与区别
    前言前段时间和一些网游大佬讨论异步,并发之类专业名字的区别,具体的实现,收获颇多,于是决定写下这篇博客作记录。下面我们将其两两分类进行讨论。并行/并发(Parallelism/Concurrency)这里借用GPT搜索的回答并行:并行是指在同一时刻执行多个操作。并行通常需要多个线程或进程来实......