C#
文章平均质量分 72
xkgjfl
这个作者很懒,什么都没留下…
展开
-
await 与并行的区别
1.只有一个任务:var a= await MethodTask(); //执行时间10s;Console.WriteLine($"Result:{a});与 var t= MethodTask(); //执行时间10sConsole.WriteLine($"Result:{ await t});执行时间都是10s2.有一个以上的任务: var a= await MethodTask1(); //执行时间10s var b= await MethodTask2().原创 2021-11-08 01:03:08 · 648 阅读 · 0 评论 -
C#异步代码async/await解析,用await等待和同步阻塞有什么区别
先看这样一段常规代码:(假设两个耗时的方法为文件或数据库或网络请求操作) class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); var result = CallMethod(); Console.WriteLine($"After method, Total: {res转载 2021-11-08 00:42:11 · 1879 阅读 · 3 评论 -
Lazy如何正确的在C#中使用
本篇文章为大家展示了Lazy如何正确的在C#中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。使用 Lazy<T>你可以自己写一段逻辑来实现 延迟初始化 ,在 .Net Framework 4.0 之后就没必要了, 因为在 System 命名空间下已经提供了 Lazy<T> ,而且还是 线程安全 的,可以使用这个类来延迟 资源密集型 的对象按需创建。当使用 Lazy<T> 的时候,这里的 T 就是你要延迟的集...转载 2021-11-07 02:03:22 · 514 阅读 · 0 评论 -
C# 中的委托和事件
引言委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。将方法作为方法的参数我们先不管这个标题如何的转载 2021-09-20 10:36:30 · 164 阅读 · 0 评论 -
async & await 的前世今生
async 和 await 出现在C#5.0之后,给并行编程带来了不少的方便,特别是当在MVC中的Action也变成async之后,有点开始什么都是async的味道了。但是这也给我们编程埋下了一些隐患,有时候可能会产生一些我们自己都不知道怎么产生的Bug,特别是如果连线程基础没有理解的情况下,更不知道如何去处理了。那今天我们就来好好看看这两兄弟和他们的叔叔(Task)爷爷(Thread)们到底有什么区别和特点,本文将会对Thread到 Task 再到 .NET 4.5的 async和await,这三.转载 2021-08-18 01:18:05 · 285 阅读 · 0 评论 -
WPF MVVM模式下的无阻塞刷新探讨
WPF MVVM模式下的无阻塞刷新探讨很多时候我们需要做一个工作,在一个方法体里面,读取大数据绑定到UI界面,由于长时间的读取,读取独占了线程域,导致界面一直处于假死状态。例如,当应用程序开始读取Web资源时,读取的时效是由网络链路的速度决定的,那么在读取的过程中整个程序都必然处于一种等待状态,这不是我们想要看到的。那么我们有没有一种机制既能解决效率问题同时可以提供代码的可用性呢?有人可能会说,我们可以使用线程池。线程真的是万能的吗?当处理大并发数据量时就能说明这个问题,线程池最大的并发量有限制,而且线程转载 2021-08-17 00:39:18 · 996 阅读 · 0 评论