lindexi

林德熙 - 微软最具价值专家和 .NET 基金会成员

林德熙

win10 UWP 动画

本文告诉大家如何写同一个简单的动画。

win10 UWP 你写我读

想要电脑读出我们写的内容,在win10,很简单 其实这个技术在windows7就有了,但是现在 win10 写出一个你写我读的软件很简单。 我们需要一个类 MediaElement 来播放,因为 windows10 的M arkdown 软件用的不是很好,所有我自己写一个。 这个软件我用了你写我读,如果需要代码,请自己去下 https://github.com/lindexi/Markdown

win10 UWP 九幽登录

九幽第三方登录及用户信息云存储插件可以登录QQ、新浪微博

win10 UWP 九幽数据分析

九幽数据统计是统计和分析数据来源,用户使用,先申请账号

win10 UWP Markdown 含源代码

Windows下没有比较好的Markdown编辑器 我就自己写一个 csdn的Markdown很好,就是我需要截图保存有麻烦 需要把我的截图保存在本地,然后上传

win10 UWP 蜘蛛网效果

我看见了知乎首页登录背景和普通的地球人写的博客,发现了个好看的效果。 那么我来告诉大家如何做这个效果。 第一步是在 Canvas 画点,第二步是让点移动,第三步是画线

visual Studio 无法调试,提示程序跟踪已退出

今天在打码出现了vs无法调试,我在网上查了很久没有发现一个方法。 vs点击启动时,出现了一下提示

  程序“[12648] *.vshost.exe: 程序跟踪”已退出,返回值为 0 (0x0)
  程序“[12648] *.vshost.exe”已退出,返回值为 -1073741819 (0xc0000005) 'Access violation'。

dotnet 后台线程设置 X11 窗口最小化

本文将告诉大家如何在 dotnet 里面的后台线程设置 X11 窗口的最小化

dotnet 后台线程发送 X11 窗口消息

本文将告诉大家如何在 dotnet 里面的后台线程向自己进程内的窗口发送消息

dotnet 记在 Linux 上某些文件的文件长度为 0 但是存在内容

本文记录我写的一个测试代码在 Linux 上踩坑的经验。在 Linux 上可能存在一些文件的文件长度是 0 但文件里面依然可以读取到内容。之前我不知道有这样的设计,导致了我大量逻辑判断文件长度为 0 就不执行,从而让运行结果不符合预期

dotnet 使用 windbg 运行脚本方式自动批量调试处理 dump 文件

本文将和大家介绍一个简单且实际用途不大的使用 windbg 配合脚本的方式,进行自动化的大批量对 dotnet 系应用的 dump 进行自动化分析调试处理,可以自动根据调试需求输出 dump 文件的一些信息

dotnet 修复多框架 TargetFrameworks 包含不受支持平台导致构建失败

本文将告诉大家如何修复 dotnet 项目里的多框架 TargetFrameworks 如果包含了当前系统无法支持的平台时,如何进行跳过。解决在 Linux 平台构建时提示 Mac Catalyst 不受支持而构建失败

dotnet 禁用 SQLite 的 SQLiteFunction 扫描程序集提升启动性能

在我所在的团队开发的一个 WPF 应用程序里面,使用到了 SQLite 作为本地数据库。在优化启动性能过程中,发现了在启动过程一旦访问 SQLite 将会因为 SQLiteFunction 扫描程序集导致 CPU 损耗,从而影响启动性能。本文将告诉大家如何禁用 SQLite 的 SQLiteFunction 扫描程序集

dotnet 使用 dnlib 检测插件程序集的 API 兼容性

本文将和大家介绍在开发 dotnet 的插件时,如何通过 dnlib 库检测当前的插件是否由于主应用程序的版本差异导致存在 API 兼容性问题

dotnet 测试 SemaphoreSlim 的 Wait 是否保持进入等待的顺序先进先出

本文记录我测试 dotnet 里面的 SemaphoreSlim 锁,在多线程进入 Wait 等待时,进行释放锁时,获取锁执行权限的顺序是否与进入 Wait 等待的顺序相同。测试的结果是 SemaphoreSlim 的 Wait 大部分情况是先进先出,按照 Wait 的顺序出来的,但是压力测试下也存在乱序,根据官方文档说明不应该依赖 SemaphoreSlim 的 Wait 做排队顺序

dotnet 测试 Mutex 的 WaitOne 是否保持进入等待的顺序先进先出

本文记录我测试 dotnet 里面的 Mutex 锁,在多线程进入 WaitOne 等待时,进行释放锁时,获取锁执行权限的顺序是否与进入 WaitOne 等待的顺序相同。测试的结果是 Mutex 的 WaitOne 是乱序的,不应该依赖 Mutex 的 WaitOne 做排队顺序

dotnet 测试在 UOS Linux 上使用 Process Start 打开文件的行为

本文记录我在 UOS Linux 系统上使用 Process.Start 打开文件的行为

dotnet 测试在 Linux 系统上的 Environment.GetFolderPath 行为

由于 Environment.GetFolderPath 可以传入的参数里面,有许多都是 Windows 系统特有的,在 Linux 上不存在的,也没有映射对应的文件夹。本文将在 WSL Debian 和 UOS 系统上测试 Environment.GetFolderPath 行为

dotnet 修复 GitHub Action 构建过程提示 NETSDK1127 错误

本文告诉大家,如何修复 GitHub Action 构建过程提示 error NETSDK1127: The targeting pack Microsoft.WindowsDesktop.App.WindowsForms is not installed. Please restore and try again. 错误

dotnet 警惕 C# 的 is var 写法

本文将和大家介绍 C# 语言设计里面,我认为比较坑的一个语法。通过 is var 的写法,会让开发者误以为 null 是不被包含的,然而事实是在这里的 var 是被赋予含义的,将被允许 null 通过判断逻辑,于是就会让开发者收到了奇怪的空异常

dotnet 警惕 Assembly.Location 返回空

在大部分情况下,获取当前所运行的应用程序的所在路径时,常用的就是 Assembly.Location 属性,按照之前的经验,使用 Assembly.Location 是最为稳定的做法,然而在 dotnet 发布单文件时,此属性将会为空,导致一些不符合预期的行为

dotnet 推荐一个使用 Json 直接路由通讯的 IPC 库

本文将和大家推荐一个我所在团队开源的本机多进程通讯 IPC 库,此 IPC 支持使用 JSON 格式进行直接路由通讯,具有使用方便,稳定性高,性能好的优点

dotnet 使用增量源代码生成技术的 Telescope 库导出程序集类型

本文将告诉大家在 dotnet 里面使用免费完全开源的基于增量源代码生成技术的 Telescope 库,进行收集导出项目程序集里面指定类型。可以实现性能极高的指定类型收集,方便多模块对接入自己的业务框架

dotnet 统信 UOS 运行 UNO FrameBuffer 应用错误 Failed to open FrameBuffer device

本文记录在 UOS 统信系统上运行 UNO 的基于 Skia 的 FrameBuffer 应用报错问题,错误提示是 Unhandled exception. System.InvalidOperationException: Failed to open FrameBuffer device /dev/fb0 (13) 的问题。问题原因是 UNO 应用的 FrameBuffer 写入失败,本文将告诉大家调查方法

dotnet 是否应该对 HttpResponseMessage 调用 Dispose 进行释放

对于 HttpClient 的请求响应值 HttpResponseMessage 来说,既然继承了 IDisposable 接口,自然就是想让大家可以通过 using 或者手动调用 Dispose 进行释放的。本文将来聊聊对 HttpResponseMessage 调用 Dispose 进行释放的意义有多大,有没有必要性的问题

dotnet 警惕 async void 线程顶层异常

在应用程序设计里面,不单是 dotnet 应用程序,绝大部分都会遵循让应用在出现未处理异常状态时终结的原则。在 dotnet 应用里面,如果一个线程顶层出现未捕获异常,则应用进程将会被认为出现异常状态而退出。通常来说就是未捕获异常导致进程闪退

dotnet 给 NuGet 包加上 Aliases 别名解决类型冲突

有时某个相同命名空间相同名字的类型被两个不同的 NuGet 包定义了,尽管这是非常少见的事情,咱需要使用到其中的一个 NuGet 包的类型,但默认情况下将会因为类型冲突而构建不通过。本文将告诉大家如何给 NuGet 包加上 Aliases 别名解决类型冲突

dotnet 警惕 ConcurrentDictionary 使用 FirstOrDefault 获取到非预期的首项

在 dotnet 里面的 ConcurrentDictionary 是一个支持并发读写的线程安全字典,在这个字典里面有一些行为会出现随机性,即多次执行相同的代码返回的结果可能不相同。本文记录在 ConcurrentDictionary 使用 FirstOrDefault 获取到非预期的首项的问题

dotnet win32 使用 WIC 获取系统编解码器

在 Windows 系统上,有一个很重要的概念是 Windows Imaging Component 也就是 WIC 层,这是专门用来处理多媒体相关的系统组件,特别是用来处理图片相关,包括编码和解码和处理图片。开发者可以扩展 WIC 层的编解码器,从而让系统可以支持更多格式的多媒体文件。本文将告诉大家如何获取当前系统上在 WIC 层安装的图片编解码器,从而了解当前系统支持哪些格式的图片

github 解决推拉代码提示 REMOTE HOST IDENTIFICATION HAS CHANGED 失败

本文记录最近 github 推送或拉取代码时提示 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 而失败的解决方法

dotnet 读 WPF 源代码笔记 聊聊 HwndWrapper.GetGCMemMessage 调试消息

我在阅读 WPF 源代码,在 HwndWrapper 的静态构造函数看到了申请了 HwndWrapper.GetGCMemMessage 这个 Windows 消息,好奇这个消息是什么功能的。通过阅读 WPF 源代码和写测试应用,了解到这是一个完全用来内部测试或调试的消息,没有任何业务上的功能