- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
林德熙 小伙伴希望保存一个文件,并且希望如果出错了也要不断地重试。然而我认为如果一直错误则应该对外抛出异常让调用者知道为什么会一直错误。这似乎是一个矛盾的要求。然而最终我想到了一个办法:让重试一直进行下去,谁需要关心异常谁就去 catch 异常,不需要关心异常的模块则跟着一直重试直到成功。我们通过编写一个自己的 Awaiter 来实现,本文将说明其思路和最终实现的代码。本文内容Awaite...
2020-03-31 07:57:50 493 1
原创 git 如何更可靠地解决冲突?
使用 git 合并代码时出现冲突是很常见的,不过如何解冲突才能更加可靠呢?不漏掉别人的修改,也同时让自己的修改完全保留。本文将介绍利用各种工具更可靠地解决冲突。本文内容使用 Visual Studio使用 Visual Studio如果你使用 Visual Studio,那么当合并两个分支出现冲突的时候,Visual Studio 的 Team Explorer 会显示当前冲突的所有文件...
2020-03-31 07:54:14 299
原创 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能
林德熙在 C# 程序集数量对软件启动性能的影响 一文中说到程序集数量对程序启动性能的影响。在那篇文章中,我们得出结论,想同类数量的情况下,程序集的数量越多,程序启动越慢。额外的,不同的代码编写方式对程序集的加载性能也有影响。本文将介绍 .NET 中程序集的加载时机,了解这个时机能够对启动期间程序集的加载性能带来帮助。本文内容程序集加载方式对性能的影响程序集的加载时机程序集加载方式对性能的影...
2020-03-31 07:50:13 706
原创 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限
对 .NET 程序使用 dotTrace 进行性能分析时,你也可能遭遇到 dotTrace 的 Bug。我就遇到了性能分析选项 Timeline 打不开进程的情况。本文内容dotTrace 的性能分析选项Timeline 打不开?解决方法启动“计算机管理”配置性能监视器用户组添加自己作为用户组的成员你已经完成了dotTrace 的性能分析选项dotTrace 启动性能分析的选项有四个,你可...
2020-03-31 07:49:05 866
原创 在 Visual Studio Code 中添加自定义的代码片段
无论是那个编辑器,如果能够添加一些自定义代码片段,能够大大提升代码的输入效率。本文介绍如何在 Visual Studio Code 中添加自定义代码片段。本文内容Visual Studio Code 的代码片段设置编写代码片段插入代码片段一个更复杂的例子关于代码片段编写的更多细节关于文件名称光标停留点(Tabstop)占位符下拉选项变量Visual Studio Code 的代码片段设置...
2020-03-31 07:47:58 4692
原创 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件)
EditorConfig 是一种被各种编辑器广泛支持的配置,使用此配置有助于项目在整个团队中保持一致的代码风格。Visual Studio 2017 开始原生支持 EditorConfig。本文将介绍 Visual Studio 对 EditorConfig 的支持情况(含原生与插件),并给出符合 .NET 和 C# 约定的 EditorConfig 详细设置。本文内容EditorConfi...
2020-03-31 07:46:39 2955
原创 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键
Visual Studio Code 默认是关闭了 Markdown 的智能感知提示的(因为真的是不好用,尤其是其没有中文分词的情况下)。那么在没有智能感知提示的情况下如何快速插入代码片段呢?可以使用快捷键!本文介绍如何为代码片段绑定快捷键。代码片段本没有快捷键相关的字段可供设置的,不过在快捷键设置中可以添加代码片段相关的设置。首先,在 Visual Studio Code 中打开快捷键...
2020-03-31 07:44:33 2044
原创 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object)
众所周知的,WPF 中多数对象都继承自 DispatcherObject,而 DispatcherObject 带给这些对象一个特点:不能跨线程访问。不过,WPF 中依然存在一些例外。本文将介绍 WPF 那些可跨线程访问的 DispatcherObject,如何充分利用这个特点提高应用程序的性能,以及如何自己编写这样的 DispatcherObject。本文内容什么样的 Dispatcher...
2020-03-31 07:43:35 577
原创 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议
在 C#/.NET 中,有 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 中,有几种不同的让当前线程释放执行权的方法。他们的作用都是放弃当前线程当前的执行权,让其他线程得以调度。但是他们又不太一样。本文说说他们的原理区别和用法区别。本文内容原理区别Thread.Sleep(0)Thread.Yield()Thread...
2020-03-31 07:42:39 2344 1
原创 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的?
当我们在传统格式的 csproj 项目文件中安装 NuGet 包后,有时会在项目文件中发现空的 NuGetPackageImportStamp 节点。这个空的节点让我们这波强迫症患者觉得有点难以接受,关键是手工删除之后也没发现有什么副作用。那么为什么会出现这个节点?它究竟有什么作用?本文内容空的 NuGetPackageImportStamp 节点什么情况下会出现 NuGetPackageI...
2020-03-31 07:41:30 411
UWP 程序所需的最少 Logo 资源
2018-07-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人