C#
hashdog
写下疑问,记录成长
展开
-
C#获取当前时间的上周一和上周日
var date = DateTime.Now; var m = (date.DayOfWeek == DayOfWeek.Sunday ? (DayOfWeek)7 : date.DayOfWeek) - DayOfWeek.Monday; var s = (date.DayOfWeek == DayOfWeek.Sunday ? (DayOfWeek)7 : date.DayOfWeek) - (DayOfWeek)7; var Mon = date.AddDays((-7 ..原创 2020-06-07 12:16:19 · 1563 阅读 · 0 评论 -
通俗理解.net与c#的区别
.net是个平台,实际上每个人的windows里面都有.net,它被用来作为中间层,就像java虚拟机,java为什么能跨平台,因为它中间有个虚拟机,把你写的代码编译成为字节码,这个字节码与操作系统无关,不同的操作系统只要安装了相应的java虚拟机,对这段字节码就会有不同的解释,会被分别翻译成能在自己的系统上运行的机器码(010101),也就是说,这段字节码你拿到linux和windows上有不同的解释,这样就实现了跨平台,微软为了让c#跨平台,也在windows上部署了一个.net框架,这个框架相当于ja翻译 2020-06-03 13:06:09 · 634 阅读 · 0 评论 -
浅析 C# Lock
Lock的定义以及概念 实现线程同步的第一种方式是我们经常使用的lock关键字,它将包围的语句块标记为临界区,这样一次只有一个线程进入临界区并执行代码。下面第一段的几行代码是关于lock关键字的使用方式,但更重要的是我们可以通过这个例子来看到lock关键字的本质。第二段是这个方法的IL指令集,从中可以看到lock其实也是一个语法糖,它的内部实现是采用了监视器Monitor。 l...转载 2020-02-11 22:38:47 · 151 阅读 · 0 评论 -
c#多线程的add 方法和tryadd方法的区别
如果集合里已经包含了指定的key,Add方法会出错,抛出异常,TryAdd不会,只是返回false,表示添加失败你可以根据你的实际情况使用,一般建议用TryAdd,根据返回值处理你的逻辑...原创 2020-02-10 21:25:13 · 2250 阅读 · 0 评论 -
C#之TryDequeue
ConcurrentQueue<T>.TryDequeue(T) 方法定义命名空间:System.Collections.Concurrent程序集:System.Collections.Concurrent.dll, mscorlib.dll, netstandard.dll尝试移除并返回并发队列开头处的对象。C#public bool TryDeq...原创 2020-02-10 21:11:01 · 8136 阅读 · 0 评论