2023-06-27
C#
00

引言

在C#中,让线程同步有两种方式:

  • 锁(lock、Monitor)
  • 信号量(EventWaitHandle、Semaphore、Mutex)

线程锁的原理,就是锁住一个资源,使得应用程序在此刻只有一个线程访问该资源。通俗地讲,就是让多线程变成单线程。在C#中,可以将被锁定的资源理解成 new 出来的普通CLR对象。

2023-06-26
C#
00

引言

最近做一个配置的功能,需求是该配置项跟另一个整形配置项关联,具有一定的函数关系,例如有一个配置项是值为 N ,则另一配置 F 项满足函数关系F=2/(N+1)F=2/(N+1)。这个函数关系是客户手动输入,只需要简单的四则运算,所以我们要做的就是判断四则运算表达式是否有效,且给定 N 的值,算出表达式的值。

如何快速判断一个四则运算公式字符串是否符合规则,且根据给定值计算出该公式的值?

2023-05-25
工具
00

引言

最近想把一些英文官方文档的资料翻译成中文,然后转化为Markdown文档,然后发现百度通用翻译的API有不错的免费额度,个人申请也能申请到高级版。这个额度足够个人的日常使用了。

image.png

2023-05-23
工具
00

引言

汇总一下所有的 .NET IL 指令,以及它们的名称、操作码值、堆栈转换行为和描述。

作为反编译IL代码时的查询字典。

2023-05-23
C#
00

引言

先不论什么是闭包,什么是闭包陷阱,我们开篇先看一段代码:

csharp
static void Main(string[] args) { List<Action> lists = new List<Action>(); for (int i = 0; i < 5; i++) { Action action = () => { Console.WriteLine(i); }; lists.Add(action); } foreach (var action in lists) { action(); } Console.ReadLine(); }

那么思考一下,控制台输出是什么?