前言上一篇我们着重讲解了TPL任务并行库,可以看出TPL已经很符合现代API的特性:简洁易用。但它的不足之处在于,使用者难以理解程序的实际执行顺序。为了解决这些问题,在C# 5.0中,引入了新的语言特性,被称为异步函数(asynchronous function)。对应的.Net版本为.Net Framework 4.5。最后一个异步编程模型:异步函数概述由 ......
353
0
0
2023-01-07
前言我们在此前已经介绍了APM模型和EAP模型,以及它们的优缺点。在EAP模型中,可以实时得知异步操作的进度,以及支持取消操作。但是组合多个异步操作仍需大量工作,编写大量代码方可完成。因此,在.Net Framework 4.0中,引入了一个新的关于异步操作的模型,叫做任务并行库,简称为TPL。第三个异步编程模型:TPL概述TPL,全称为Task Paral ......
376
0
0
2023-01-07
前言在上一篇博文中,我们提到了APM模型实现异步编程的模式,通过使用APM模型,可以简化.Net中编写异步程序的方式,但APM模型本身依然存在一些缺点,如无法得知操作进度,不能取消异步操作等。针对这些缺点,微软在.Net 2.0中提出了基于事件的异步模式,简称为EAP模型。第二个异步编程模型:EAP概述EAP,全称Event-based Asynchrono ......
321
0
0
2023-01-07
前言在.Net程序开发过程中,我们经常会遇到如下场景:编写WinForm程序客户端,需要查询数据库获取数据,于是我们根据需求写好了代码后,点击查询,发现界面卡死,无法响应。经过调试,发现查询数据库这一步执行了很久,在此过程中,UI被阻塞,无法响应任何操作。如何解决此问题?我们需要分析问题成因:在WinForm窗体运行时,只有一个主线程,即为UI线程,UI线程 ......
333
0
0
2023-01-07
WPF ComboBox 使用 ResourceBinding 动态绑定资源键并支持语言切换独立观察员 2021 年 8 月 23 日我们平常在 WPF 中进行资源绑定操作,一般就是用 StaticResource 或者 DynamicResource 后面跟上资源的 key 这种形式,能满足大部分需求。但是有的时候,我们需要绑定的是代表了资源的 key 的 ......
360
0
0
2023-01-07
WPF 表格控件 ReoGrid 的简单使用目录一、概述二、安装三、添加控件四、加载 Excel五、属性设置六、支持触摸滚动七、其它操作1、显示和隐藏列2、显示特定字体八、资源链接独立观察员 2021 年 7 月 9 日一、概述ReoGrid 是一个开源的表格控件库,支持 Winform 和 WPF。本文演示在 WPF 中的使用,用的是直接加载 Excel ......
808
0
0
2023-01-07
C# 在自定义的控制台输出重定向类中整合调用方信息目录C# 在自定义的控制台输出重定向类中整合调用方信息一、前言二、输出重定向基础版三、输出重定向进阶版(传递调用方信息)四、后记及资源独立观察员 2021 年 1 月 6 日一、前言众所周知,在 .NET 的控制台应用程序(就是那种小黑框程序)中输出信息,使用的是控制台输出方法 Console.Write ( ......
374
0
0
2023-01-07
利用 C# 中的 FileSystemWatcher 制作一个文件夹监控小工具独立观察员 2020 年 12 月 26 日简述了使用 FileSystemWatcher 进行文件系统变更监测的方法,本人受此启发,决定制作一个文件夹内变动监控的小工具,当作练手和自用。目前该工具已制作完成,故发文分享给大家。功能比较简单,运行程序后,点击 “选择文件夹” 按钮选 ......
452
0
0
2023-01-07
时间如流水,只能流去不流回! 本文 Dotnet9 https://dotnet9.com 已收录,站长乐于分享dotnet相关技术,比如Winform、WPF、ASP.NET Core等,亦有C++桌面相关的Qt Quick和Qt Widgets等,只分享自己熟悉的、自己会的。今天介绍一个开源的C# WPF开源控件库,非常漂亮,重点是开源哦WPF做桌面开发 ......
404
0
0
2023-01-07
Winform 进度条弹窗和任务控制目录Winform 进度条弹窗和任务控制一、弹窗前台二、弹窗后台三、使用方法四、效果展示和代码地址独立观察员 2020 年 11 月 17 日最近要给一个 Winform 项目添加功能,需要一个能显示进度条的弹窗,还要求能够中止任务,所以就做了一个,在此做个记录总结。虽然用的是比较老的 Winform 技术,不过其中的原理 ......
523
0
0
2023-01-07
要理解 C# 中的 volatile 关键字,就要先知道编译器背后的一个基本优化原理。比如对于下面这段代码:public class Example { public int x; public void DoWork() { x = 5; var y = x + 10; ......
458
0
0
2023-01-07
《大话设计模式》作者:程杰前言成为 诗人 后 可能 不需要 刻意 地 按照 某种 模式 去 创作, 但 成为 诗人 前 他们 一定 是 认真 地 研究 过 成百上千 的 唐诗 宋词、 古今 名句。第 1 章 代码无错就是优?—— 简单工厂模式1.5 活字印刷,面向对象 > 位置 584“第一, 要 改, 只需 更改 要 改之 字, 此为 可维护;第二, ......
441
0
0
2023-01-07
最近在几个微信 .NET 交流群里大家讨论比较频繁的话题就是这几天自己的面试经历。面试官:“你刚说你喜欢研究新技术,那你有了解过 Blazor 吗?”作为一位专注于 .NET 开发的软件工程师,你好意思说你对 Blazor 一点也不解吗?.NET 新技术也就是那么几个,连微软最近在逛推的 Blazor 你都不了解,你好意思说你喜欢研究新技术?讲真,确实有很多 ......
465
0
0
2023-01-07
这节我们来讲一下,在ASP.NET Core Web开发中,读取配置文件信息的新方式:Options。前言 /Options在ASP.NET Web框架中,我们读取配置文件中的数据,在不使用第三方框架的情况下,可能需要通过ConfigurationManager这个类去读取配置文件中的信息,并且,如果我们人为更改了配置文件,需要重启系统才能使新的配置数据生效 ......
488
0
0
2022-12-31
这节来讲一下C#中的匿名类型。匿名类在C#中,我们可以不去显示的声明一个类,而是通过匿名类去临时声明一个类结构去帮助我们去完成一些功能。声明一个匿名类,我们可以像下面这样做:var Anonymous=new {name="charles",year=18};//声明匿名类对象 需要注意的是,匿名类成员只能声明公共的只读属性,不能在匿名类中声明方法,因此匿 ......
574
0
0
2022-12-31