文档章节

.NET Core初览-异步篇

梦想游戏人
 梦想游戏人
发布于 2019/12/14 13:06
字数 315
阅读 57
收藏 0

官方说法是提供的异步是语言级别的多线程,基于任务的封装。

这个概念比较简单,额外比较好的一点就是语言级别的 和go写起来能实现差不多的感受。

关于这一点,不是该篇的重点,本文探究的是CPU压榨下的C#提供的异步方案和写法。

 

写法:

这种写法就在API后面封装,实现同步写法,这一点上和go可以很像了

using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Collections;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Net.Http;

namespace ConsoleApp2
{
    class RedisMgr
    {
        int WorkerFunc(int x)
        {
            //can do sync opt in this func
            return x * x * x * x * x * x * MathF.Sign(0.1f);
        }

        private async Task<int> GetIntInternal(string key)
        {
            var task = Task.Run(() => WorkerFunc(2));
            var result = await task;
            return result;
        }

        public int GetInt(string key)
        {
            return this.GetIntInternal(key).Result;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            RedisMgr xx = new RedisMgr();

            var val = xx.GetInt("redis_key_1");//async operation

            Console.WriteLine(val);
            Console.ReadLine();
        }
    }
}

 

 

 

 

 

© 著作权归作者所有

梦想游戏人
粉丝 41
博文 472
码字总数 187033
作品 0
成都
私信 提问
Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验

Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验 前几天分享的"[Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验][http://www.cnblogs.com/yilezhu/p/9416439.html]" 反响...

依乐祝
2018/08/09
0
0
通俗易懂,C#如何安全、高效地玩转任何种类的内存之Memory(三)

前言 我们都知道,.Net Core是微软推出的一个通用开发平台,它是跨平台和开源的,由一个.NET运行时、一组可重用的框架库、一组SDK工具和语言编译器组成,旨在让.Net developers可以更容易地编...

李君子
2018/12/13
0
0
What?VS2019创建新项目居然没有.NET Core3.0的模板?Bug?

今天是个值得欢喜的日子,因为VS2019在今天正式发布了。作为微软粉,我已经用了一段时间的VS2019 RC版本了。但是,今天有很多小伙伴在我的《ASP.NET Core 3.0 上的gRPC服务模板初体验(多图)...

依乐祝
2019/04/03
0
0
10个提升ASP.NET Core应用程序性能的技巧分享

今天这篇文章我们来聊一聊如何提升并优化ASP.NET Core应用程序的性能,本文的大部分内容来自翻译,当然中间穿插着自己的理解,希望对大家有所帮助!话不多说开始今天的主题吧! 我们都知道性...

依乐祝
2019/03/10
0
0
聊聊多线程那一些事儿 之 五 async.await深度剖析

   hello task,咱们又见面啦!!是不是觉得很熟读的开场白,哈哈你哟这感觉那就对了,说明你已经阅读过了我总结的前面4篇关于task的文章,谢谢支持!感觉不熟悉的也没有关系,在文章末尾我...

程序员修炼之旅
01/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Kettle自定义jar包供javascript使用

我们都知道 Kettle 是用 Java 语言开发,并且可以在 JavaScript 里面直接调用 java 类方法。所以有些时候,我们可以自定义一些方法,来供 JavaScript 使用。 本篇文章有参考自:https://www...

CREATE_17
昨天
102
0
处理CSV文件中的逗号

我正在寻找有关如何处理正在创建的csv文件的建议,然后由我们的客户上传,并且该值可能带有逗号(例如公司名称)。 我们正在研究的一些想法是:带引号的标识符(值“,”值“,”等)或使用|...

javail
昨天
79
0
如何克隆一个Date对象?

将Date变量分配给另一个变量会将引用复制到同一实例。 这意味着更改一个将更改另一个。 如何实际克隆或复制Date实例? #1楼 简化版: Date.prototype.clone = function () { return new ...

技术盛宴
昨天
73
0
计算一个数的数位之和

计算一个数的数位之和 例如:128 :1+2+8 = 11 public int numSum(int num) { int sum = 0; do { sum += num % 10; } while ((num = num / 10) > 0); return sum;......

SongAlone
昨天
124
0
为什么图片反复压缩后普遍会变绿,而不是其他颜色?

作者:Lion Yang 链接:https://www.zhihu.com/question/29355920/answer/119088684 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 业余版概要:安卓的...

shzwork
昨天
81
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部