task.run(), task.factory.startnew() 和 new task() 的行为不一致分析_yonlin-编程思维

重现 在 .Net5 平台下,创建一个控制台程序,注意控制台程序的Main()方法如下: static async Task Main(string[] args) 方法的主体非常简单,使用Task.Run创建一个立即执行的Task,在其内部不断输出线程id,直到手动关闭程序,代码如下:代码片段1 点击查看代码static async Task Main(string[] args) {

c#/vb.net 将pdf转为excel_carina-baby-编程思维

PDF文档可以避免可防⽌他⼈⽆意中触到键盘修改⽂件内容。但是在避免他人⽆意修改的同时也妨碍了正常的修改。如果你想处理或修改PDF文档中的数据,不妨试试用Excel来实现。Excel拥有强大的数据处理功能,丰富的绘制图表功能,丰富的自动化功能。本文将分为两个部分详细为您介绍如何通过C#/VB.NET代码将PDF转为Excel格式。仅需简单几步即可实现此功能,详情请阅读以下内容。 将PDF转为Exc

用windowsappsdk(wasdk)优雅的开发上位机应用_绿荫阿广-编程思维

C#开发上位机应用的一些选择 如果你不想看介绍,可以直接跳到优雅开发示例那里。 1. WASDK(WinUI 3) Windows 应用 SDK 是一组新的开发人员组件和工具,它们代表着 Windows 应用开发平台的下一步发展。 Windows 应用 SDK 提供一组统一的 API 和工具,可供从 Windows 11 到 Windows 10 版本 1809 上的任何桌面应用以一致的方式使

c#/vb.net 使用插件将html转pdf_carina-baby-编程思维

HTML 文件是通常以文件扩展名 .html 或 .htm 保存的网页文档。 由于 PDF 的可移植性和兼容性,将 HTML 内容转换为 PDF 具有许多优势。 由于 PDF 支持范围广泛的图像压缩,即使在一个文件中保存了很多的数据,在硬盘驱动器上也不会占用很多的存储空间。因为即使压缩数据,转换为 PDF 的 HTML 文档仍会保留网页的原始文本和布局。 并且可以在任何设备或操作系统上保存和共享

微软外服工作札记②——聊聊微软的知识管理服务平台和一些编程风格-编程思维

微软外服工作札记②聊聊微软的知识管理服务平台和一些编程风格 前言 近期,我参加了微软某部门的知识平台整合工作,正好把微软内部的各个知识管理平台的特点做一个整理,供大家参考。 众所周知,知识管理服务平台其实对任何一家稍有规模的企业都是相当重要的,俗话说铁打的营盘流水的兵,在当今社会,除了在国企,任何一个人都不太可能在一家公司工作一辈子,对公司来说也是如此,你也不能指望员工能在公司里工作一辈子,很多

【C#/VB.NET】 将PDF转为SVG/Image, SVG/Image转PDF-编程思维

SVG是一种图形文件格式,它的英文全称为Scalable Vector Graphics,意思为可缩放的矢量图形。它在放大或者改变尺寸的情况下其图形质量不会有所损失,且与 JPG 和 GIF 图像比起来,尺寸更小,且可压缩性更强。本文将介绍如何实现将PDF文档与SVG/Image相互转换的方法。经过综合对比之后,最后筛选出这一方法。此方法操作起来比较方便且代码量较少。下面是我整理的详细步骤及C#

C# 将HTML转为XML-编程思维

本文以C#及VB.NET后端程序代码示例展示如何将HTML转为XML文件。转换时,调用Word API -Free Spire.Doc for .NET 提供的文档加载方法及文档保存的方法来实现。转换的代码步骤很简单,具体可参考以下内容。     引入dll 1.通过NuGet安装dll(2种方法)   1.1可以在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“

工作流引擎之Elsa入门系列教程之一 初始化项目并创建第一个工作流-编程思维

引子 工作流(Workflow)是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。 为了实现某个业务目标,需要多方参与、按预定规则提交数据时,就可以用到工作流。 通过流程引擎,我们按照流程图,编排一系列的步骤,让数据可以按照一定的规则,一定的顺序,提交给一定的负责人进行处理,实现带有时间轴的数据协作。 目前dotnet平台主流工作流引擎有两个: workflow-core 轻量级嵌入式工作

.NET C#基础(6):命名空间 - 有名字的作用域-编程思维

0. 文章目的   面向C#新学者,介绍命名空间(namespace)的概念以及C#中的命名空间的相关内容。   1. 阅读基础   理解C与C#语言的基础语法。   理解作用域概念。   2. 名称冲突与命名空间 2.1 一个生活例子   假设猫猫头在北京有一个叫AAA的朋友,在上海有两个叫AAA的朋友,上海的两个AAA一个喜欢咸粽子,一个喜欢甜粽子。有一天猫猫找朋友玩,朋友问道:   “AA

.NET C#基础(7):接口 - 人如何和猫互动-编程思维

0. 文章目的   面向有一定基础的C#初学者,介绍C#中接口的意义、使用以及特点。   1. 阅读基础   了解C#基本语法(如定义一个类、继承一个类)   理解OOP中的基本概念(如继承,多态)   2. 什么是接口 2.1 现实中的协定与接口   猫猫头在整理电脑文件,需要一个小工具来分类文件,于是猫猫头向群里求助:   “有没有小伙伴帮我用Objective-C做一个分类文件的小工具”

C#/VB.NET 创建图片超链接-编程思维

  超链接(Hyperlink)可以看做是一个“热点”,它可以从当前Web页定义的位置跳转到其他位置,包括当前页的某个位置、Internet、本地硬盘或局域网上的其他文件,甚至跳转到声音、图片等多媒体文件。浏览Web页是超链接最普遍的一种应用,通过超链接还可以获得不同形态的服务,如文件传输、资料查询、电子函件、远程访问等。我们可以直接在Word中对文字或图片添加超链接,本文将通过C#/VB.NE

C#/VB.NET 设置图片背景-编程思维

在日常工作和学习中,我们经常会用到Word来协助我们完成工作。简约大方的背景图片可以使文档看起来更加精致美观,从而达到不一样的视觉效果。在本篇文章中,将介绍如何使用组件Free Spire.Doc for .NET给Word设置文档背景。只需简单几步便可实现此功能,下面是我整理的具体方法和步骤。 dll文件安装(3种方法) 1.通过NuGet安装dll(2种方法)   1.1可以在Visual

C#中HashSet的重复性与判等运算重载-编程思维

本文地址:https://www.cnblogs.com/oberon-zjt0806/p/12355028.html 本文遵循CC BY-NC-SA 4.0协议,转载请注明出处。 目录一个故事……一个繁荣的遥远国度:泛型容器但是我也不确定容器里能放些什么东西啊一个英勇的皇家骑士:HashSet值类型的HashSet引用类型的HashSet另外一个……故……事??(虚假传说)虚假传说-序言一

C#/VB.NET 在Word转PDF时生成目录书签-编程思维

当我们在转换Word文档到PDF格式时,想保留Word文档的标题作为PDF书签,那么应该如何操作呢?那么本文将以C#及VB.NET代码为例,介绍如何在Word转PDF时生成目录书签。下面是具体方法和步骤,希望对大家有所帮助。   程序环境 本次测试时,在程序中引入Free Spire.Doc for .NET。可通过以下方法引用Spire.Doc.dll文件: 方法1:将 Free Spire.

.NET C#基础(6):命名空间 - 组织代码的利器-编程思维

0. 文章目的   面向C#新学者,介绍命名空间(namespace)的概念以及C#中的命名空间的相关内容   1. 阅读基础   理解C与C#语言的基础语法   2. 名称冲突与命名空间 2.1 一个生活例子   假设猫猫头在北京有一个叫AAA的朋友,在上海有两个叫AAA的朋友,上海的两个AAA一个喜欢咸粽子,一个喜欢甜粽子。有一天猫猫找朋友玩,朋友问道:   “AAA最近过得怎么样”,   

.NET C#杂谈(1):变体 - 协变、逆变与不变-编程思维

0. 文章目的:   介绍变体的概念,并介绍其对C#的意义   1. 阅读基础   了解C#进阶语言功能的使用(尤其是泛型、委托、接口)   2. 从示例入手,理解变体   变体这一概念用于描述存在继承关系的类型间的转化,这一概念并非只适用于C#,在许多其他的OOP语言中也都有变体概念。变体一共有三种:协变、逆变与不变。其中协变与逆变这两个词来自数学领域,但是其含义和数学中的含义几乎没有关系(就

【抬杠.NET】如何进行IL代码的开发(续)-编程思维

背景 之前写了一篇文 【抬杠.NET】如何进行IL代码的开发 介绍了几种IL代码的开发方式。 创建IL项目 C#项目混合编译IL 使用InlineIL.Fody 使用DynamicMethod(ILGenerator) 我个人比较喜欢IL和C#在同一个项目的方式(毕竟单单为了一点点IL代码新建一个IL项目也挺麻烦的),所以一直在用InlineIL.Fody。后来在使用过程中发现了一些它的限制,而

.NET C#基础(1):相等性与同一性判定 - 似乎有点小缺陷的设计-编程思维

0. 文章目的   本文面向有一定.NET C#基础知识的学习者,介绍在C#中的常用的对象比较手段,并提供一些编码上的建议。   1. 阅读基础   1:理解C#基本语法与基本概念(如类、方法、字段与变量声明,知道class引用类型与struct值类型之间存在差异)   2:理解OOP基本概念(如类、对象、方法的概念)   2. 概念:相等性与同一性   在开始前,我们需要先来明确两个概念   

.NET C#基础(2):方法修饰符 - 给方法叠buff-编程思维

0. 文章目的   本文面向有一定.NET C#基础知识的学习者,介绍C#中的方法修饰符的含义和使用以及注意事项。   1. 阅读基础   理解C#基本语法(如方法声明)   理解OOP基本概念(如多态)   2. 概念:什么是方法修饰符   在C#中,一个方法通常按如下形式声明 [访问修饰符] [方法修饰符] [返回类型] 方法名(参数列表)   例如,一个方法的声明如下: public vi

.NET C#基础(3):事件 - 不便处理的事就委托出去-编程思维

0. 文章目的   本文面向有一定.NET C#基础知识的学习者,介绍.NET中事件的相关概念、基本知识及其使用方法   1. 阅读基础   理解C#基本语法(方法的声明、方法的调用、类的定义)   2. 从委托说起,到底什么是事件 2.1 方法与委托 (1)从一个案例开始说起   在讨论本节主题之前,我们先来看一个实际问题。下面是一个方法,作用是把两个值相加,然后将相加的结果通过控制台程序打印