首页 > 编程语言 >C# 加深印象之 Task.Run和new Task的区别

C# 加深印象之 Task.Run和new Task的区别

时间:2023-12-15 10:34:32浏览次数:31  
标签:Info Task Run Log C# BBB AAA 执行

        public async Task Test() {
            var task = AAA();
            Log.Info("调用AAA");
            await Task.Delay(2000);
            Log.Info("等待2秒任务尚未执行完毕");
            await task; //等待任务完成
            Log.Info("等待AAA执行完毕");
            var task2 = BBB();
            Log.Info("创建BBB任务");
            await Task.Delay(4000);
            Log.Info("等待4秒发现任务并没有执行");
            task2.Start();
            Log.Info("开始执行BBB");
            await task2;
            Log.Info("等待BBB执行完毕");
        }
        Task AAA() {
            return Task.Run(() => { //Task.Run是创建一个任务并执行
                Thread.Sleep(3000);
                Log.Info("AAA内部执行完毕");
            });
        }
        Task BBB() {
            return new Task(() => { //这里只是创建了一个任务,毕不会执行
                Thread.Sleep(3000);
                Log.Info("BBB内部执行完毕");
            });
        }

 

标签:Info,Task,Run,Log,C#,BBB,AAA,执行
From: https://www.cnblogs.com/luludongxu/p/17902795.html

相关文章

  • C++(this指针)
    在C++中,this是一个关键字,表示指向当前对象的指针。它是每个非静态成员函数的一个隐式参数,被用于指向调用该函数的对象。通过this指针,成员函数可以访问调用它的对象的成员变量和成员函数。以下是一个简单的示例,演示了this指针的使用:#include<iostream>classMyClass{......
  • 【C++】异常处理 ④ ( 异常接口声明 | 异常接口语法 | 抛出一种类型的异常 | 抛出多种
    文章目录一、异常接口声明1、异常接口引入2、异常接口语法3、抛出一种类型的异常4、抛出多种类型的异常5、抛出任何类型异常-不声明异常接口/声明throw(...)6、不能抛出任何类型异常-声明throw()7、抛出异常类型错误博客总结://1.不会抛出异常voidfun()throw();......
  • c# 本地文件上传到服务器
    1、先把服务器上的路径设置成共享路径2、代码如下stringfileName="5002356611";//替换为你要查找的文件名stringaaa=@"E:\SAP图片";//替换为源文件夹的路径stringb=@"\\173.1.60.169\test";//替换成实际的网络路径(该路径必须是共享文件夹)var......
  • Mysql:非全局share的、connect独立分配的内存(及相关参数)说明
     join_buffer_size:sql语句中join连接时候,其中每个表分配的buffer大小。默认256k,最小128byte,最大4G(32位os)。它最大的问题是:立即分配,而不是按需分配! sort_buffer_size:sql语句中的orderby时候,为每个orderby分配的buffer大小。默认256K,最小32K,最大4G(32位os)......
  • 学C笔记归纳 第十四篇——一维数组
    1.什么是数组?        数组是一组相同类型元素的集合。2.数组的创建方式        type_tarr_name[const_n]        type_t            数组的元素类型    arr_name     数组名        const_n   ......
  • ubuntu下完全卸载重装docker教程
    操作需在管理员权限下运行卸载docker1.删除docker的所有包apt-getautoremovedockerdocker-cedocker-enginedocker.iocontainerdrunc2.查看docker是否卸载干净dpkg-l|grepdockerdpkg-l|grep^rc|awk'{print$2}'|sudoxargsdpkg-P3.删除相关插件apt-......
  • decimal插件计算
    import{Decimal}from'decimal.js';//引入exportconstcal={jia(num1,num2){returnnewDecimal(num1).add(newDecimal(num2))},jian(num1,num2){returnnewDecimal(num1).sub(newDecimal(num2))},cheng(num1,num2){returnnewDecimal(num......
  • C++ Qt开发:ProgressBar进度条组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍ProgressBar进度条组件的常用方法及灵活运用。ProgressBar(进度条)是在Qt中常用的用户界面组件之一......
  • extract_triton_kernels.py
    importsysfilename=sys.argv[1]withopen(filename,'r')asf:lines=f.readlines()defextract_info(line):line=line.split()name=line[0].strip()self_gpu_time=line[6].strip()num_of_calls=int(line[10].strip())......
  • MacOS - Qt工程转xcode工程
    序言:程序使用Qt开发,程序主要功能是调用摄像头。需要打包成pkg给到用户安装,打包用到的是xcode。一、Qt工程转xcode工程//打开终端,cd到项目根目录(CamScan.pro目录),使用qmake生成xcode工程文件(CamScan.xcodeproj)cd/Users/yangHu/Desktop/CamScan/CamScan/Users/App/Q......