sync 异步编程
2024-10-07 13:31:02
using System;
using System.Net;
using System.Threading;
using System.Threading.Tasks; namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine($"Main Start...{System.Threading.Thread.CurrentThread.GetHashCode()}"); var rst = DisplayValueAsync(); Console.WriteLine($"Main do some thing End...{System.Threading.Thread.CurrentThread.GetHashCode()}"); Console.WriteLine($"Sub1 End...values is {rst.Result} {System.Threading.Thread.CurrentThread.GetHashCode()}"); Console.Read(); } public static async Task<int> DisplayValueAsync()
{
Console.WriteLine($"Sub call...{System.Threading.Thread.CurrentThread.GetHashCode()}"); var rst= await Task<int>.Run(()=> { System.Threading.Thread.Sleep(); Console.WriteLine($"Sub exec...{System.Threading.Thread.CurrentThread.GetHashCode()}"); var random = new Random();
return random.Next(,); }); return rst; } } }
https://www.cnblogs.com/yaopengfei/p/9249390.html
执行异步方法的时候有几个注意事项
1.sync与await要成对出现,异步方法只能有3个返回值 (void Task 与 Task<T>)
2.异步方法内要自行通过task.run开辟新的线程出来
3.主线程通过调用异步方法task.Resutl来获取线程结果,此时也会阻塞线程等待结果
最新文章
- C#体检套餐项目
- vs2016x64&;&;qt5.7.1编译osg3.4.0&;&;osgEarth2.7
- Git 进阶指南
- webstorm 10 出现不能run cordova项目
- AngularJS的一点学习笔记
- Atomic
- HA功能中ZKFC对NN状态的控制
- 后台框架--HUI 的学习跟使用1
- 理解 Python 中的线程
- java中集合类HashSet、ArrayList、LinkedList总结
- python2编码问题
- (转)手工释放linux内存——/proc/sys/vm/drop_cache
- python对象的多重继承
- SCRUM 12.23
- oo作业总结报告
- mysql操作基本命令
- JS 计算时间差,(引入外部字体文件)
- POJ 3186Treats for the Cows(区间DP)
- leetcode difficulty and frequency distribution chart
- PHP分页及原理