.NET程序崩溃了怎么抓 Dump ? 我总结了三种方案

一:背景

1. 讲故事

最近几天接到了几个crash的求助,可能这几个朋友没玩过怎么去生成dump,只能手把手教,感觉也不是一个办法,所以有必要总结一下,后续再有朋友咨询的话,我就可以把这篇文章丢过去了,好了,我大概总结了下面三种方式:

  • procdump -e

  • procdump -> AEDebug

  • Windows Error Reporting

老读者应该知道,我一直都推崇 procdump 去搞定这些事情,毕竟它是一款可跨平台抓取的强大灵巧工具。

阅读剩余部分

记一次 .NET某桌面奇侠 非托管泄漏分析

一:背景

1. 讲故事

说实话,这篇dump我本来是不准备上一篇文章来解读的,但它有两点深深的感动了我。

  1. 无数次的听说用 Unity 可做游戏开发,但百闻不如一见。

  2. 游戏中有很多金庸武侠小说才有的名字,太赏心悦目了。

    阅读剩余部分

细聊C# AsyncLocal如何在异步间进行数据流转

前言

在异步编程中,处理异步操作之间的数据流转是一个比较常用的操作。C#异步编程提供了一个强大的工具来解决这个问题,那就是AsyncLocal。它是一个线程本地存储的机制,可以在异步操作之间传递数据。它为我们提供了一种简单而可靠的方式来共享数据,而不必担心线程切换或异步上下文的变化。本文我们将探究AsyncLocal的原理和用法,并进行相关源码解析。探讨它如何在异步操作之间实现数据的流转,以及它是如何在底层工作的。

阅读剩余部分

合理使用Visual Studio 2022内置任务列表(TODO)

前言

在开发编码过程中经常会因为各种问题而打断自己的思绪和开发计划,可能会导致本来准备开发或者需要测试的功能到要上线的时候才想起来没有做完。这种情况相信很多同学都遇到过,咱们强大的Visual Studio内置了一个任务列表(TODO)能让我们当做待办清单功能使用,接下来我们快速了解一下。欢迎在评论区留下你觉得好用的Visual Studio实用功能。

阅读剩余部分

C#插入排序算法

插入排序实现原理

插入排序算法是一种简单、直观的排序算法,其原理是将一个待排序的元素逐个地插入到已经排好序的部分中。

具体实现步骤如下

  1. 首先咱们假设数组长度为n,从第二个元素开始,将当前元素存储在临时变量temp中。
  2. 从当前元素的前一个位置开始向前遍历,比较temp与每个已排序元素的值大小。
  3. 如果已排序元素大于临时变量temp中的元素,则将该元素后移一位,继续向前比较。

    阅读剩余部分