前言 看过不少关于await的原理的文章,也知道背后是编译器给转成了状态机实现的,但是具体是怎么完成的,回调又是如何衔接的,一直都没有搞清楚,这次下定决心把源码自己跑了下,终于豁然开朗了 本文的演示代码基于VS2022+.NET6 示例 publicclassProgram { staticintWork() { Console.WriteLine("InTask.Run"); return1; } staticasyncTaskTestAsync() { Console.WriteLine("BeforeTask.Run"); awaitTask.Run(Work); Consol...

  E0PrXHNXwsEF   2023年12月31日   26   0   0 .NET

前言 上一篇,我们实现了基于DotNetty的通信基础模块的搭建,本篇,主要实现待发布Web项目的集成。 创建待发布项目 为了测试,我创建了一个基于.NET4.8的Web项目OpenDeploy.TestWebProject 我本机的代码仓储路径是:D:\Projects\Back\dotnet\Study\OpenDeploy.TestWebProject 待发布项目集成Git Git是一个开源的分布式版本控制系统。我们使用它实现自动化检测需要发布的文件。 我把这个测试的Web项目,托管在了Gitee,仓储地址如下:OpenDeply.TestWebProject 配置待发布项目 ...

  E0PrXHNXwsEF   2023年12月31日   32   0   0 .NET

前言 上一篇,我只实现了一键检测代码变化,本篇才是真正的实现了一键打包发布 效果图 客户端打包待发布文件 ///<summary> ///把多个文件添加到压缩包(保留文件夹层级关系) ///</summary> publicstaticasyncTask<ZipFileResult>CreateZipAsync(IEnumerable<ZipFileInfo>zipFileInfo) { returnawaitTask.Run(()=> { varzipDir=EnsureZipDirCreated(); varzipFileName=$...

  E0PrXHNXwsEF   2023年12月31日   33   0   0 .NET

介绍 一个源代码生成器,用于向C项目添加一组用户定义的Win32P/Invoke方法和相关的类型。 链接地址:https://github.com/microsoft/CsWin32 还在手动添加平台调用的代码或者增加无用的程序集?微软的官方解决方案来了! 特色 快速将P/Invoke方法和相关类型添加到您的C项目。 没有笨重的程序集,按需使用 自动生成安全的类型SafeHandle 基于微软的官方链接生成xml文档和接口注释 先决条件 The.NET5SDKorVisualStudio2019Update8(16.8)(具体看自己Github上的说明吧) 使用方法 安装nuget包d...

  E0PrXHNXwsEF   2023年12月31日   34   0   0 .NET

介绍 一个源代码生成器,用于向C项目添加一组用户定义的Win32P/Invoke方法和相关的类型。 链接地址:https://github.com/microsoft/CsWin32 还在手动添加平台调用的代码或者增加无用的程序集?微软的官方解决方案来了! 特色 快速将P/Invoke方法和相关类型添加到您的C项目。 没有笨重的程序集,按需使用 自动生成安全的类型SafeHandle 基于微软的官方链接生成xml文档和接口注释 先决条件 The.NET5SDKorVisualStudio2019Update8(16.8)(具体看自己Github上的说明吧) 使用方法 安装nuget包d...

  E0PrXHNXwsEF   2023年12月16日   26   0   0 .NET

前言 上一篇,我只实现了一键检测代码变化,本篇才是真正的实现了一键打包发布 效果图 客户端打包待发布文件 ///<summary> ///把多个文件添加到压缩包(保留文件夹层级关系) ///</summary> publicstaticasyncTask<ZipFileResult>CreateZipAsync(IEnumerable<ZipFileInfo>zipFileInfo) { returnawaitTask.Run(()=> { varzipDir=EnsureZipDirCreated(); varzipFileName=$...

  E0PrXHNXwsEF   2023年12月11日   26   0   0 .NET

前言 上一篇,我们实现了基于DotNetty的通信基础模块的搭建,本篇,主要实现待发布Web项目的集成。 创建待发布项目 为了测试,我创建了一个基于.NET4.8的Web项目OpenDeploy.TestWebProject 我本机的代码仓储路径是:D:\Projects\Back\dotnet\Study\OpenDeploy.TestWebProject 待发布项目集成Git Git是一个开源的分布式版本控制系统。我们使用它实现自动化检测需要发布的文件。 我把这个测试的Web项目,托管在了Gitee,仓储地址如下:OpenDeply.TestWebProject 配置待发布项目 ...

  E0PrXHNXwsEF   2023年12月06日   32   0   0 .NET

前言 看过不少关于await的原理的文章,也知道背后是编译器给转成了状态机实现的,但是具体是怎么完成的,回调又是如何衔接的,一直都没有搞清楚,这次下定决心把源码自己跑了下,终于豁然开朗了 本文的演示代码基于VS2022+.NET6 示例 publicclassProgram { staticintWork() { Console.WriteLine("InTask.Run"); return1; } staticasyncTaskTestAsync() { Console.WriteLine("BeforeTask.Run"); awaitTask.Run(Work); Consol...

  E0PrXHNXwsEF   2023年11月17日   24   0   0 .NET

本文的项目环境为.net6.0(.net5.0以上都支持) 在.net中获取字符串的MD5相信是非常容易的事情吧,但是随便在网上搜一搜发现流传的版本还不少呢,比如: StringBuilder版本(应该算是官方版本了,使用的人最多,我发现在ABP中也是使用的这个) BitConverter版本 StringConcat版本(字符串拼接,用的人很少,估计都知道性能不好) 但是它们是否是最佳实现?我们来测试一下 StringBuilder版本 publicstaticstringMd5_StringBuilder(stringinput) { usingvarmd5=MD5.Cre...

  E0PrXHNXwsEF   2023年11月06日   30   0   0 .NET

本文的项目环境为.net6.0(.net5.0以上都支持) 在.net中获取字符串的MD5相信是非常容易的事情吧,但是随便在网上搜一搜发现流传的版本还不少呢,比如: StringBuilder版本(应该算是官方版本了,使用的人最多,我发现在ABP中也是使用的这个) BitConverter版本 StringConcat版本(字符串拼接,用的人很少,估计都知道性能不好) 但是它们是否是最佳实现?我们来测试一下 StringBuilder版本 publicstaticstringMd5_StringBuilder(stringinput) { usingvarmd5=MD5.Cre...

  E0PrXHNXwsEF   2023年11月02日   40   0   0 .NET
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~