目录01.点明观点02.C#中,using的两个作用03.using如何实现资源释放04.实践探索05.总结01.点明观点C#中,非托管资源使用之后必须释放,而using()是使用非托管资源的最佳方式,可以确保资源在代码块结束之后被正确释放,并且代码更简洁。这里说的非托管资源指的是实现IDisposable或IAsyncDisposable接口的类。usin ......
277
0
0
2023-02-01
1.Overview经常研究.NET源码库的小伙伴会经常看到一个关键字volatile,那它在开发当中的作用是什么呢?我们一起来看看官方文档里是怎么描述的,如下:“volatile 关键字指示一个字段可以由多个同时执行的线程修改。出于性能原因,编译器,运行时系统甚至硬件都可能重新排列对存储器位置的读取和写入。声明为 volatile 的字段将从某些类型的优化 ......
447
0
0
2023-01-09
以下文章来源于精致码农 ,作者liamwang现代应用程序广泛使用的是基于任务的异步编程模式(TAP),历史的 EAP 和 AMP 模式已经过时不推荐使用。今天继续总结一下 TAP 的异步操作,比如取消任务、报告进度、Task.Yield()、ConfigureAwait() 和并行操作等。虽然实际 TAP 编程中很少使用到任务的状态,但它是很多 TAP 操 ......
310
0
0
2023-01-09
以下文章来源于CSharp编程大全 ,作者zls365Stream.Read 方法当在派生类中重写时,从当前流读取字节序列,并将此流中的位置提升读取的字节数。语法:public abstract int Read(byte[] buffer, int offset, int count)参数:buffer: 字节数组。此方法返回时,该缓冲区包含指定的字符数组 ......
386
0
0
2023-01-09
一、概要本文主要讲解在c#中lock关键字的用法以及需要注意的坑。帮助大家避免使用不当造成的bug。作用:lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断。它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。在多线 ......
462
0
0
2023-01-09
一、概要大家好,本次继续分享自己的学习经历。本文主要分享Task异步编程内容,如果能帮助大家希望多多关注文章末尾的微信公众号和知乎三连。各位举手之劳是对我更新技术文章最大的支持。二、详细内容1.同步异步同步操作会在返回调用者之前完成它的工作异步操作会在返回调用者之后去做它的工作异步的方法更为少见,会启用并发,因为他的工作会与调用者并行执行目前见到的大部分的异 ......
427
0
0
2023-01-09
一、概要大家好,本次继续分享自己的学习经历。本文主要分享异步编程中Task的使用,如果能帮助大家希望多多关注文章末尾的微信公众号和知乎三连。各位举手之劳是对我更新技术文章最大的支持。个人心得:Task是一个升级版本的Thread的类,它非常的灵活支持取消、阻塞等待、合并多个Task协同操作、编码高效易懂、异常传播、回调传递结果或调用方法等。本文相关文献查阅地 ......
356
0
0
2023-01-09
c#异步编程-线程近期会分享自己学习c#异步编程系列的文章,如果能帮助大家希望多多关注文章末尾的微信公众号和知乎三连。各位举手之劳是对我更新技术文章最大的支持。1.线程线程是一个可执行的路径,它可以独立于其他线程执行。每个线程都在操作系统的进程内执行,而操作系统进程提供了程序运行的独立环境。单线程应用,在进程的独立环境里只跑一个线程,所以该线程拥有独占权。多 ......
434
0
0
2023-01-09
作者:码云 Gitee链接:https://www.zhihu.com/question/27993498/answer/1014561869来源:知乎除了微软本家的还有啥好的项目推荐哇(⊙o⊙)?据说很多被迫使用 C# 的人最后都真香了?C# 确实有很多让人惊艳的地方,如果想要学习C#语言,多找几个开源项目进行实践,必能事半功倍。下面推荐几个 Gitee ......
343
0
0
2023-01-09
写在前面 Composite组合模式属于设计模式中比较热门的一个,相信大家对它一定不像对访问者模式那么陌生,毕竟谁又没有遇到过树形结构呢。不过所谓温故而知新,我们还是从一个例子出发,起底一下这个模式吧。 一个简单例子 设想我们要建立一个公司的人事架构,在一个公司里,我们可以简单地分为两种员工,一种是经理(包括老板),另一种是基层员工,经理可以有下属,而普通 ......
347
0
0
2023-01-08
前言 Visitor模式在日常工作中出场比较少,如果统计大家不熟悉的模式,那么它榜上有名的可能性非常大。使用频率少,再加上很多文章提到Visitor模式都着重于它克服语言单分派的特点上面,而对何时应该使用这个模式及这个模式是怎么一点点演进出来的提之甚少,造成很多人对这个模式有种雾里看花的感觉,今天跟着老胡,我们一起来一点点揭开它的面纱吧。 模式演进 举个例 ......
326
0
0
2023-01-08
01—死锁的原理线程死锁是指由于两个或者多个线程互相持有对方所需要的资源,并且互相等待对方释放资源,导致这些线程都处于等待状态,无法继续执行。如果线程都不主动释放所占有的资源,将产生死锁。如果死锁发生在UI线程,则会导致界面停止响应。死锁的条件:1.互斥条件:线程对于所分配到的资源具有排它性,即一个资源只能被一个线程占用,直到被该线程释放2.请求和保持条件: ......
287
0
0
2023-01-07
C# 在自定义的控制台输出重定向类中整合调用方信息目录C# 在自定义的控制台输出重定向类中整合调用方信息一、前言二、输出重定向基础版三、输出重定向进阶版(传递调用方信息)四、后记及资源独立观察员 2021 年 1 月 6 日一、前言众所周知,在 .NET 的控制台应用程序(就是那种小黑框程序)中输出信息,使用的是控制台输出方法 Console.Write ( ......
278
0
0
2023-01-07
利用 C# 中的 FileSystemWatcher 制作一个文件夹监控小工具独立观察员 2020 年 12 月 26 日简述了使用 FileSystemWatcher 进行文件系统变更监测的方法,本人受此启发,决定制作一个文件夹内变动监控的小工具,当作练手和自用。目前该工具已制作完成,故发文分享给大家。功能比较简单,运行程序后,点击 “选择文件夹” 按钮选 ......
346
0
0
2023-01-07
时间如流水,只能流去不流回! 本文 Dotnet9 https://dotnet9.com 已收录,站长乐于分享dotnet相关技术,比如Winform、WPF、ASP.NET Core等,亦有C++桌面相关的Qt Quick和Qt Widgets等,只分享自己熟悉的、自己会的。今天介绍一个开源的C# WPF开源控件库,非常漂亮,重点是开源哦WPF做桌面开发 ......
309
0
0
2023-01-07