![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
.NET&C#
文章平均质量分 50
.NET&C#
小黄瓜要编程
小白刚学习,希望借助blgo更好的学习
展开
-
深入理解.Net中的线程同步之构造模式(二)内核模式4.内核模式构造物的总结
Kernel-mode Constructs一般翻译为内核模式构造 ,Constructs 即是一个名词也是一个动词,但是翻译为构造感觉有点像一个动词,个人感觉翻译为名词更好,毕竟是加了s的,就表示多个,动词显然不能表示多个啊,比如内核模式构造物,内核模式构造体。IDE:Visual Studio 2022OS:Win10.NET:.Net4.6.1我们前面3个小节简单的过了一个内核构造物的三个常见的构造物,现在我们就来说说为什么要使用内核构造物?内核构造物的优点?内核模式的一个很重要的优点是可原创 2022-06-26 18:29:39 · 283 阅读 · 0 评论 -
深入理解.Net中的线程同步之构造模式(二)内核模式3.内核模式构造物Mutex
Kernel-mode Constructs一般翻译为内核模式构造 ,Constructs 即是一个名词也是一个动词,但是翻译为构造感觉有点像一个动词,个人感觉翻译为名词更好,毕竟是加了s的,就表示多个,动词显然不能表示多个啊,比如内核模式构造物,内核模式构造体。IDE:Visual Studio 2022OS:Win10.NET:.Net4.6.1互斥体mutex就是一个互斥的锁,和AutoResetEvent 事件锁类似。只不过mutex比AutoResetEvent 事件锁多了一些额外的功原创 2022-06-25 16:48:15 · 165 阅读 · 0 评论 -
.Net6中使用log4net记录日志
项目框架升级到.Net6后 ,为了快速迭代,日志组件还是按照传统的方式引入传统日志组件主要分为3个部分ILog日志接口 public interface ILog { void InfoLog(string info); void ErrorLog(string info); void ErrorLog(string info, Exception ex); void DebugLog(string info);原创 2022-05-30 22:41:49 · 2762 阅读 · 0 评论 -
深入理解.Net中的线程同步之构造模式(一)用户模式构造
两种构造模式有两种基元构造:用户模式(user-mode)和内核模式( kernel-mode)。应尽量使用基元用户模式构造,它们的速度要显著快于内核模式的构造。为什么用户模式要快于内核模式呢?这是因为它们使用了特殊CPU指令来协调线程。这意味着协调是在硬件中发生的(所以才这么快)。换句话说用户模式不是没有阻塞而是阻塞的很短,在硬件层面,对于内核系统来说,他不知道发生了阻塞,所有认为永远不会阻塞。而内核模式就是系统帮我们虚拟出的一个构造,它相比用户构造虽然性能不好,会阻塞但是不会占着cpu一直跑。就像.原创 2022-04-19 21:34:25 · 204 阅读 · 0 评论 -
深入理解.Net中的锁(一)为什么不建议使用Lock
在CLR Via C#一书中作者说了,他不推荐在任何时候使用lock,说实话,我们在很多时候还是会为了方便,在一些简单的场景中,还是会顺手就使用lock,那么为什么不建议使用lock呢?今天就来详细说说。先上代码代码环境为.Net4.6.1,因为.net6中Thread.CurrentThread.Abort()方法被弃用了。using System;using System.Collections.Generic;using System.Linq;using System.Text;usi原创 2022-04-10 20:38:05 · 1962 阅读 · 0 评论 -
.Net6去掉返回时间中的T
由于一系列了规则,.Net中返回的时间序列化后都带有T,最近项目升级到.NET6了,返回数据中仍然有T!记录一下升级解决方案!注意在.Net6之前序列化一般使用Newtonsoft.Json 升级后采用 System.Text.Json 。原以为按照.Net5中的方案,在Program中配置一下就可以了,试了一下发现姿势不对,首先.Net6现在默认不需要AddMvc()配置了,我们就不能使用builder.Services.AddMvc().SetCompatibilityVersion(Comp原创 2021-12-28 21:43:13 · 2089 阅读 · 0 评论 -
又见问题之-Windows Server 2012 R2 安装.net 4.6.1
服务器是新版的Windows Server 2012 R2 ,要迁移一个低版本的(.net v4.6.1)到改服务器上,发现报错,缺少.Netframework, Version=v4.6.1,直接下载对应版本的.Netframework,下载地址下载完成,点击安装报错,你需要先安装 对应于 KB2919355 的更新 ,然后才可在 Windows 8.1 或 Windows Server 2012 R2 上安装此产品。下载对应的升级包(下载地址)开始升级,提示对应的版本不支持,一脸懵.原创 2021-12-09 17:27:38 · 4993 阅读 · 0 评论 -
c#代码实现根据经纬度获取2点之间距离
c#代码实现根据经纬度获取2点之间距离原创 2016-08-13 13:15:50 · 1103 阅读 · 0 评论 -
Winfrom开发之通过treeview实现树形结构
Winfrom开发之通过treeview实现树形结构方法一、 节点法分析 节点法类似于树形结构中的树,通过父节点和子节点 以及节点深度来查找根节点没有父节点 深度为0部门与所属子部门的深度差为1,子部门的父节点是上级部门的主键例如市场部的父节点为1 节点深度为0数据库设计如图所示测试数据使用的控件实现代码 //初始化树原创 2015-07-01 20:00:38 · 8056 阅读 · 2 评论 -
Asp.net动态页面静态化之输出对象属性(实体关联)
Asp.net动态页面静态化之输出对象属性(实体关联)模板引擎不单单可以输出单一的数据,还能直接输出对象的属性using System;using System.Collections.Generic;using System.Linq;using System.Web;using NVelocity.Runtime;using NVelocity;using NVelocit原创 2015-08-13 23:23:27 · 977 阅读 · 0 评论 -
Asp.net动态页面静态化之初始NVelocity模板引擎
Asp.net动态页面静态化之初始NVelocity模板引擎静态页面是网页的代码都在页面中,不需要执行asp,php,jsp,.net等程序生成客户端网页代码的网页,静态页面网址中一般不含“?”、“=”、“&”等特殊符号。静态页面不能自主管理发布更新的页面,如果想更新网页内容,要通过FTP软件把文件DOWN下来用网页制作软件修改(通过fso等技术例外) 常见的静态页面举例:.html扩展名的、原创 2015-08-13 14:47:51 · 1227 阅读 · 0 评论 -
Windows Server开发之·嵌入Service WebApi跨域问题处理
开发了一个windows server 服务,需要时候监控该服务的相关信息,并且控制改服务的启动 暂停等,开始想开一web api来控制,但是.net 的webapi都是寄宿在iis的下 发布的时候要发布2次,于是就通过把api 服务嵌入server服务。嵌入后 一直存在跨域问题,网上找了很多解决方法,都没有很好的解决最后只能采用一个很粗糙的处理方案 在实现契约的方法中加入以下代码 如下:...原创 2019-03-28 09:36:10 · 510 阅读 · 0 评论 -
WebApi开发爬坑记之·重写ValidationAttribute自定义DateTimeCompareAttribute
ValidationAttribute验证特性一般用来验证数据的格式,范围,是否必填等,我们通过它的子类特性Range Required 等特性可以轻松实现对数据的验证。 但是对于一些特殊需要的特性,系统自带的特性局限性很大,我们就可以自定义扩展需要的特性了。 api的开发中,存在着很多时间范围的查询,一般要求传入开始时间和结束时间 ,并且结束时间必须大于开始时间,只有...原创 2018-12-21 17:04:50 · 1934 阅读 · 2 评论 -
各种奇葩的错误处理之-IIS Express系统托盘错误,ID为xxx未运行
一个阳光明媚的上午,业务人员看开发效果,我熟练的启动调试,但是么有运行成功,好尴尬!报错如下2个一起报 第二个错误很常见我熟练的打开项目的.csproj文件,把关于IIS的配置属性都清空了,重启调试,蹦! 还是报错然后各种折腾 ,把.Net 卸载重装了一次还是不行 突然之间,灵光一闪将项目web熟性 位数改为了x64 ,并手动创建了虚拟目录iis可以...原创 2019-02-15 10:36:06 · 1080 阅读 · 0 评论 -
c# 基础数据类型格式及范围
bool -> System.Boolean (布尔型,其值为 true 或者 false)decimal->System.Decimal(表示十进制数,占16个字节)byte -> System.Byte (字节型,占 1 字节,表示 8 位正整数,范围 0 ~ 255)sbyte -> System.SByte (带符号字节型,占 1 字节,表示 8 位整数,范围...原创 2018-12-10 17:25:43 · 589 阅读 · 0 评论 -
C#结构体和类的区别
C#结构体和类的区别类和结构是 .NET Framework 中的常规类型系统的两种基本构造.值类型与引用类型结构结构是值类型,值类型在堆栈上分配地址,所有的基类型都是结构类型,例如:int 对应System.int32 结构,string 对应 system.string 结构 ,通过使用结构可以创建更多的值类型。类类是引用类型,引用类型在堆上分配地址。堆栈的执行效率原创 2015-05-06 17:26:02 · 555 阅读 · 0 评论 -
c#方法参数ref和out区别
c#方法参数ref和out区别params 关键字可以指定采用数目可变的参数的 方法参数。可以发送参数声明中所指定类型的逗号分隔的参数列表或指定类型的参数数组。 还可以不发送参数。在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。class Program { staticvoidMain()原创 2015-05-07 17:03:59 · 905 阅读 · 0 评论 -
c#学习之-c#通过sql存储过程实现分页
c#学习之-c#通过sql存储过程实现分页分页的重要性不言而喻,本文将相信的讲解c#通过sql进行分页的实现(三层)数据库表如下现在编写sql分页通用存储过程if exists (select 1 from sysobjects where [name]='proc_CommonPage' and [type]='p') drop pr原创 2015-06-01 12:38:51 · 1108 阅读 · 0 评论 -
Asp.net动态页面静态化之include和parse区别
Asp.net动态页面静态化之include和parse区别 #include就是在模版中在将其他模版包括进来,就好比网站的头部,尾部,广告模版等等,这些内容都是相同的时候,就可以做成一个单独的模版供各处引用。 #parse的用法跟#include相类似,如果将上面的代码改成#parse之后,效果是一样的,#parse的特殊功能在于,它可以解析Nvelocity元素,比如,body原创 2015-08-14 22:34:53 · 1382 阅读 · 0 评论 -
c#学习之-xml操作类XmlHelper
c#学习之-xml操作类XmlHelper该操作类主要使用XmlDocument方法操作类using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Xml;namespace SSM.Common{ public class Xm原创 2015-06-07 17:18:14 · 1949 阅读 · 0 评论 -
Asp.net动态页面静态化之字典哈希表的输出已及遍历判断的实现
Asp.net动态页面静态化之字典哈希表的输出已经遍历判断的实现using System;using System.Collections.Generic;using System.Linq;using System.Web;using NVelocity.Runtime;using NVelocity;using NVelocity.App;using System.Colle原创 2015-08-14 18:40:50 · 1092 阅读 · 0 评论 -
webservice之简单创建和发布(一个加法运算)
webservice之简单创建和发布(一个加法运算)开发工具 visual studio 2010 WebService:严格来说是行业标准,不是技术,使用XML扩展标记语言来表示数据(这个是夸语言和平台的关键)。微软的Web服务实现称为ASP.NET Web Service.它使用Soap简单对象访问协议来实现分布式环境里应用程序之间的数据交互。WSDL来实现服务接口相关的描述。此外原创 2015-08-18 11:20:45 · 3129 阅读 · 0 评论 -
通过Nopi实现对execl的操作
通过Nopi实现对execl的操作nopi是一个第三方的组建,使用前必须应用该组件,请自行下载using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using原创 2015-10-18 15:57:31 · 538 阅读 · 0 评论 -
Log4net记日志
c#代码需要一个记录公共类 业务日志和错误日志应该分开记录需要先下载引用log4net.dllc#记录帮助类 public class LogHelper { private static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");原创 2016-08-13 13:09:40 · 503 阅读 · 0 评论 -
c# Duff优化for循环耗时
看Js高级编程的时候 发现了一个叫duff 可以优化for循环的感觉比较有趣简单 写了一个c#版的winfrom的三个button的代码如下 如果要效果明显 可以增大for 循环长量的值 public const int Counts= 10000000; private void button1_Click(object sender, EventArg原创 2016-11-05 13:49:47 · 3601 阅读 · 0 评论 -
Winfrom修改AppConfig之坑
Winfrom的AppConfig大多数情况下,我们都是用来读取一些简单的配置偶尔可能会遇到存取一两个变量,这样的情况下,我们不会单独见配置文件,也不会启用ini文件,可能为了方便顺手用一下appconfig。但是 appconfig读取容易 修改可是很坑的 使用系统只带的方法,可能不会永久保存修改(具体问题请参考C#之app.config、exe.config和vshost.exe.config...原创 2018-05-09 14:22:08 · 1223 阅读 · 0 评论 -
用记事本写C#控制台代码
用记事本写C#控制台代码 用记事本写C#控制台代码好处1. 初学者用记事本可以帮助学习,帮助记忆一些语法和单词2. 可以在不安装viusal 开发环境,只需要有Microsoft.NET Framework环境下就可以修改编译一些简单程序配置环境要求:安装有Microsoft.NET Framework的Windows操作系统步骤;1.原创 2015-05-05 20:22:58 · 2227 阅读 · 0 评论