.Net Framework

一次Task.Run异常问题的排查

↘锁芯ラ 提交于 2021-01-08 16:59:13
最近在测试一个功能代码时发现一个非常奇怪的问题,主要是Task.Run引起一些不符合逻辑的错误,以下针对这一问题排查的总结。 问题代码 可以建个控制台程序来运行以下代码 class Program { static User user = new User(); static void Main(string[] args) { for (int i = 0; i < 50; i++) { Task.Run(user.Init); } System.Threading.Thread.Sleep(-1); } } public class User { private bool mInit = false; private Task OnInit() { Console.WriteLine("User init"); System.Threading.Thread.Sleep(1000); return Task.CompletedTask; } public void Init() { lock (typeof(User)) { if (!mInit) { var task = Task.Run(this.OnInit); if (!task.Wait(5000)) { throw new TimeoutException("user init error!"); } mInit

电商培训完能做什么岗位?

巧了我就是萌 提交于 2021-01-08 16:04:46
  电商培训完能做什么岗位?电商可以从事的岗位比较多,如高级电商设计师、淘宝天猫美工、视觉设计师、UI界面设计师、网页设计师、平面设计师、艺术指导、美术编辑、广告设计等。   高级电商设计师早已成为各企业疯狂争抢的人才,薪水自然一路看涨。高级电商设计师不等于美工。电商需要的是贴合用户体验的设计,单纯吸引眼球的画面不会带来高转化率。挑出用户想看的信息,按照用户喜欢的方式排列重组,这样的逻辑才能搭建出赚钱的电商。所以高级电商设计重在实战。   根据对技术和商务要求的侧重点不同,可把电子商务岗位分为两类:以技术为主的电子商务岗位,如网站设计和数据库维护人员等;以商务为主的电子商务岗位,如网络营销、网络市场调查等岗位。电子商务培训完能从事的岗位有:   1、网站编辑   传统媒体报纸、杂志、电视台等需要编辑记者,网站当然也需要,且要求更高,需要懂得互联网知识。各类门户网站、行业门户网站都大量需要这方面人才。该职位男女生都比较适宜。   2、网站推广   网络推手、网络写手建设网站,每个有网站的企业都需要网络菅销的高手,目前社会上很缺这类人才,所以这个职位需求量大,进入门槛高。如果能掌握网络营销的过硬本领,那么找一份高薪的工作是比较容易的。   3、网站设计   网页设计这个职位对计算机要求比较高,对于擅长编程技术的人员比较适合,从事这个岗位的男生比较多。   4、网站客服网站客服  

接口 Swagger 部分Web API的隐藏

a 夏天 提交于 2021-01-07 23:49:53
背景 Swagger是目前最受欢迎的REST APIs文档生成工具,同时也是API的在线测试工具。功能强大谁用谁知道。我就不用在这里推广它了。今天要解决的问题是:如果让一些特定的API接口在Swagger中不显示,即从Swagger中过滤掉一些不想展示的接口?通常我们使用Swagger都是通过指定要扫描的包或者扫描具有某些注解的Controller,来生成API,那么如果这其中还想过滤掉一些特定API怎么做呢? 实现方法 1、添加特性,隐藏swagger接口特性标识 /// <summary> /// /// </summary> /// <param name="swaggerDoc"> </param> /// <param name="context"> </param> public void Apply ( SwaggerDocument swaggerDoc, DocumentFilterContext context ) { foreach (ApiDescription apiDescription in context.ApiDescriptions) { if (apiDescription.TryGetMethodInfo( out MethodInfo method)) { if (method.ReflectedType.CustomAttributes

re模块findall函数用法

若如初见. 提交于 2021-01-07 23:46:23
Python re 模块 findall 函数用法简述 本文档介绍了正则表达式元字符 和 re模块 findall 函数用法。 正则表达式元字符 给予正则表达式强大的功能和灵活性。 表 示 法 描述 正则表达式示例 符号 literal 匹配文本字符串的字面值literal foo . 匹配任何字符(除了\n 之外) b.b ^ 匹配字符串起始部分 ^Dear $ 匹配字符串终止部分 /bin/*sh$ * 匹配 0 次或者多次前面出现的正则表达式 [A-Za-z0-9]* + 匹配 1 次或者多次前面出现的正则表达式 [a-z]+.com ? 匹配 0 次或者 1 次前面出现的正则表达式 goo? {N} 匹配 N 次前面出现的正则表达式 [0-9]{3} {M,N} 匹配 M~N 次前面出现的正则表达式 [0-9]{5,9} […] 匹配来自字符集的任意单一字符 [aeiou] [..x−y..] 匹配 x~y 范围中的任意单一字符 [0-9], [A-Za-z] [^…] 不匹配此字符集中出现的任何一个字符,包括某一范围的字符( 如果在此字符集中出现) [^aeiou], [^A-Za-z0-9] (…) 匹配封闭的正则表达式,然后另存为子组 ([0-9]{3})? 特殊字符 \d 匹配任何十进制数字,与[0-9]一致( \D 与\d 相反,不匹配任何非数值型的数字)

快速通过比较两个Word文档来获得差异的解决方案

北城以北 提交于 2021-01-07 23:26:00
Spire.Doc for .NET 是一个专业的Word .NET库,设计用于帮助开发人员高效地开发创建、阅读、编写、转换和打印任何来自.NET( C#, VB.NET, ASP.NET)平台的Word文档文件的功能。( 点击下载 ) 从Spire.Doc V8.12.14开始,它支持在结构列表中获取两个Word文档之间的差异。本文将向您展示如何使用Spire.Doc通过比较两个Word文档来获得差异。 C# using Spire.Doc; using Spire.Doc.Documents; using Spire.Doc.Fields; using Spire.Doc.Formatting.Revisions; using System; namespace GetWordDifferences { class Program { static void Main(string[] args) { //Load the first Word document Document doc1 = new Document(); doc1.LoadFromFile("Sample1.docx"); //Load the second Word document Document doc2 = new Document(); doc2.LoadFromFile("Sample2

入门Vue.js要学习哪些知识?

懵懂的女人 提交于 2021-01-07 18:49:43
入门 Vue.js 首先需要从最基础的知识学起,比如 Vue.js 的概念、作用、特点等等。只有对 Vue.js 有一个大致的初步了解,我们才能明白为什么掌握它如此重要。下面一起来具体看看入门 Vue.js.js 要学习哪些知识吧! 1 、 Vue.js 是干什么的? ( 1 ) Vue.js 的产生 在目前这个互联网高速发展的社会,每天都会出现和消失无数的应用,一个网站会因为节日活动或其它原因频繁更改样式,要想持续的发展下去,产品的用户体验是基本中的基本。如果你用手机浏览器打开过一些网页的话,你会发现发现网页和原生 app 之间的一些区别。网页的优势是不用安装,随用随走等;劣势是网页加载的时候会出现空白页面,一些动画效果明显有卡顿的感觉,页面与页面之间跳转因为加载网页数据的原因也会出现短暂空白页面的情况等。 总的来讲,网页与原生 app 做对比,几乎只有不用安装一个优势,其他方面的用户体验明显不如原生 app 。在这种情况下, Vue.js 等一系列 前端 开发框架应运而生。可以这么说, Vue.js 等前端框架的流行是历史的必然,要想成为一名优秀的开发者,入门 学习前端开发 框架是必须的。 ( 2 ) Vue.js 的定义 对于刚开始入门学习的朋友来讲,我们首先要弄清楚 Vue.js 的定义这一基础知识。 Vue.js 的官方文档解释说,它是一套用于构建用户界面的渐进式框架

LeanCloud 2020 回顾

断了今生、忘了曾经 提交于 2021-01-07 12:28:25
各位 LeanCloud 的用户大家好。2020 年是不平静的一年,每个人的生活和工作都因为疫情发生了很大改变。在这一年里很多活动都由线下转向了线上,我们很高兴在这个转变过程中为很多用户提供了有价值的服务,也想在这一年结束时对大家的长期支持表示衷心的感谢。 过去一年里,我们一如既往地不断推进产品和服务的改进和优化:推出了 Flutter SDK,助力使用 Flutter 跨平台移动应用开发方案的开发者;基于 .Net Standard 2.0 重写 C# SDK,提供更完善的 API 接口和对更多平台的支持;在华北节点上线了网络隔离优化方案,支持账户层面乃至应用层控制台、文档面的访问入口隔离,降低意外情况下相互影响的风险,确保服务稳定。 网络隔离 我们在华北节点上线了网络隔离优化方案,为拥有商用版应用的账户免费分配了一个独立 IP(默认提供 2Gbps 的防护带宽),以作为账户下所有应用使用存储服务的默认入口。 使用独立 IP 后,不同开发者的应用使用不同的网络访问入口,可以隔离风险,避免因为其他开发者的应用碰到 DDoS 攻击等意外情况而受牵连。 如果开发者希望更进一步隔离各个应用之间的网络,或者希望为云引擎也配置独立 IP,还可以额外 购买更多的独立 IP [1]。 我们推荐使用云引擎的开发者,特别是在云引擎上托管动态站点的开发者,也为云引擎配置独立 IP。未配置独立 IP

02_python是一种什么语言?

℡╲_俬逩灬. 提交于 2021-01-07 10:29:54
python是一种什么语言? 1.低级语言与高级语言   最初的计算机程序都是用0和1的序列表示的,程序员直接使用的是机器指令,无需翻译,从纸带打孔输入即可执行得到结果。后来为了方便记忆,就将用0、1序列表示的机器指令都用符号助记,这些与机器指令一一对应的助记符就成了汇编指令,从而诞生了汇编语言。 无论是机器指令还是汇编指令都是面向机器的,统称为低级语言 。因为是针对特定机器的机器指令的助记符,所以 汇编语言是无法独立于机器(特定的CPU体系结构)的 。但汇编语言也是要经过翻译成机器指令才能执行的,所以也有将运行在一种机器上的汇编语言翻译成运行在另一种机器上的机器指令的方法,那就是 交叉汇编技术 。   高级语言是从人类的逻辑思维角度出发的计算机语言,抽象程度大大提高,需要经过编译成特定机器上的目标代码才能执行,一条高级语言的语句往往需要若干条机器指令来完成。 高级语言独立于机器的特性是靠编译器为不同机器生成不同的目标代码(或机器指令)来实现的 。那具体的说,要将高级语言编译到什么程度呢,这又跟编译的技术有关了,既可以编译成直接可执行的目标代码,也可以编译成一种中间表示,然后拿到不同的机器和系统上去执行,这种情况通常又需要支撑环境,比如解释器或虚拟机的支持,Java程序编译成bytecode,再由不同平台上的虚拟机执行就是很好的例子。所以,说 高级语言不依赖于机器

Excel的线程 与 SynchronizationContext的实现

北城以北 提交于 2021-01-07 08:56:58
COM组件的线程模型 与Excel多线程的背景知识 COM组件的线程模型被称之为Apartment模型,COM对象初始化时其执行上下文(Execution Context),他要么和单个线程关联STA(Single Thread Apartment ) 要么和多个线程关联MTA(Multi Thread Apartment)。 Excel是一种STA线程的应用程序,使用多线程直接怼会出问题,必须借助线程的同步上下文实现线程间的消息传递。 1、Excel 开发中与线程相关的若干问题参考这个链接: https://www.cnblogs.com/yangecnu/p/Some-Thread-Releated-Problems-and-Solutions-in-Excel-Development.html 2、SynchronizationContext的实现参考这个链接(共3篇文章,进入链接后可以找到下一章的链接): https://www.codeproject.com/Articles/31971/Understanding-SynchronizationContext-Part-I 3、ExcelDNA是什么 Excel-DNA is an independent project to integrate .NET into Excel. With Excel-DNA you

SynchronizationContext(同步上下文)综述

核能气质少年 提交于 2021-01-07 08:37:42
https://www.cnblogs.com/BigBrotherStone/archive/2020/01/29/12240731.html >>返回《C# 并发编程》 1. 概述 2. 同步上下文 的必要性 2.1. ISynchronizeInvoke 的诞生 2.2. SynchronizationContext 的诞生 3. 同步上下文 的概念 4. 同步上下文 的实现 4.1. WinForm 同步上下文 4.2. Dispatcher 同步上下文 4.3. Default 同步上下文 4.4. 上下文捕获和执行 4.5. AspNetSynchronizationContext 5. 同步上下实现类 的注意事项 6. AsyncOperationManager 和 AsyncOperation 7. 同步上下文 的Library支持示例 7.1. WCF 7.2. Workflow Foundation (WF) 7.3. Task Parallel Library (TPL) 7.4. Reactive Extensions (Rx) 7.5. 异步编程 Async 8. 限制和功能 1. 概述 无论是什么平台(ASP.NET 、WinForm 、WPF 等),所有 .NET 程序都包含 同步上下文 概念,并且所有多线程编程人员都可以通过理解和应用它获益。 2.