![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#基础
文章平均质量分 79
changuncle
这个作者很懒,什么都没留下…
展开
-
关于C#中Dictionary多线程情况下CPU 100%问题的详细分析
我也知道Dictionary线性不安全,但我以为它只是在多线程里面会导致脏读而已,并不知道会导致CPU 100%。那我就好奇,为什么Dictionary的ContainsKey方法,会导致CPU100%呢?这里需要结合Dictionary源码和多线程并发场景深挖一下。原创 2021-12-18 13:58:43 · 2677 阅读 · 2 评论 -
.Net中async、await的用法及其与Task的关系
本文中使用的示例代码都是在WinForm中编写调试的,我根据是否使用await处理Task、调用异步方法/非异步方法、方法的返回值为Task/Task<Student>,做了8种情况的分析和总结。public class CommonUtil{ public static async Task<Student> AsyncGetStudentInfoHasReturn(string sname) { string name = $"Handle原创 2020-08-07 18:21:26 · 1677 阅读 · 3 评论 -
C#线程安全类型解析及用法
在C#里面我们常用各种集合、数组、List、Dictionary、Stack等,然而这些集合都是非线程安全的,当多线程同时读写这些集合的时候,有可能造成里面的数据混乱,为此微软从Net4.0开始专门提供了另一套线程安全类型,放在System.Collections.Concurrent命名空间中,我们这里以ConcurrentDictionary<T, T>为例进行讲解。一、Try...原创 2020-04-20 00:07:16 · 2978 阅读 · 3 评论 -
VS2017使用C#编写COM组件
一、新建类库项目VS2017已经支持Core了,不过我们新建的是Framework框架的类库。二、 在项目的属性页选中"Build" -->"Register for COM interop"中文版VS是在项目的属性页选中"生成" -->"为COM互操作注册"三、在项目的属性页设置"Signing" -->"Choose a strong name key fi...原创 2019-11-13 20:31:09 · 4937 阅读 · 6 评论 -
.Net Core导出Excel防止重提交
在项目中导出Excel时,由于需要处理的数据量较大导致后台执行时间过长,造成前台页面长时间没反应,用户误以为点击失败从而再次点击导出按钮,因此出现了重提交的情况。为了避免用户重复点击按钮,我们应该在用户第一次点击导出按钮时将按钮置为不可用,直到导出成功后才可再次导出。一、解决思路1、用户第一次点击导出按钮后,将导出按钮置为不可用状态并修改按钮text为“正在导出”2、后台导出成功后往缓...原创 2019-10-14 18:55:46 · 487 阅读 · 2 评论 -
Repeater和AspnetPager实现分页显示及固定表头
repeater控件和AspnetPager控件配合使用,并附带冻结<table/>表头效果原创 2016-08-06 19:12:59 · 3867 阅读 · 2 评论 -
Newtonsoft.Json高级用法
Newtonsoft.Json使用总结原创 2016-09-08 13:18:37 · 6577 阅读 · 5 评论 -
Asp.net中UpdatePanel内FileUpload的正确使用方法
当FileUpload文件上传控件包含在UpdatePanel标签中时,用户提交后,FileUpload控件中选择的文件不会被提交到后台,我们需要对UpdatePanel进行设置原创 2017-11-25 09:11:51 · 3556 阅读 · 1 评论 -
c#基础入门(6)——File、FileStream、StreamReader、StreamWriter详解
一、Filestring file = @”E:\Study\Test\example.txt”; 1、string text = File.ReadAllText(file); 文件名不存在会报错 2、string[] lines = File.ReadAllLines(file); 文件不存在会报错 3、byte[] bytes = File.ReadAllBytes(file);原创 2017-11-21 22:58:36 · 1271 阅读 · 2 评论 -
c#基础入门(1)——变量、运算符、数组
一、变量变量的命名规则: ①变量名必须以字母、_、@开头,后边可以是数字、字母、下划线; ②同一变量不能重复声明,例如:连续声明int numOne=1;int numOne=2;会报错; ③变量名不能是系统关键字,例如string、static、void等; ④Pascal命名法、Camel命名法,Pascal命名法一般用于属性、方法,Camel命名法一般用于字段; 常见变量类型:...原创 2016-07-25 23:33:28 · 1061 阅读 · 1 评论 -
你必须知道的.NET之特性和属性
特性和属性原创 2016-09-18 14:19:00 · 5389 阅读 · 2 评论 -
C#中的Attribute详解(下)
从上篇里我们可以看到,Attribute似乎总跟public、static这些关键字(Keyword)出现在一起。莫非使用了Attribute就相当于定义了新的修饰符(Modifier)吗?让我们一窥究竟吧!原创 2017-04-18 16:04:09 · 13251 阅读 · 5 评论 -
C#中的Attribute详解(上)
近期正在研究AOP,本以为学会之后就又得了一个宝贝,想想心中还挺高兴的。我在学习时无意中发现了一位大牛在12年前写的一篇关于AOP博客(http://www.cnblogs.com/wayfarer/articles/241024.html),写的真是很深入很不错,这时我突然感觉自己很渺小很无知,人家12年前就了如指掌的东西,我到如今还在东拼西凑地找学习资料,觉得自己真是太差劲了。不过后来我也想通了原创 2017-04-17 22:45:22 · 33321 阅读 · 7 评论 -
WebForm删除操作弹出确认窗口
删除是比较危险的操作,尤其是硬删除,所以在执行删除操作之前弹出确认对话框让用户确认删除是一种友好的处理方式。原创 2017-03-25 16:04:53 · 3970 阅读 · 1 评论 -
C# string.Format格式化日期
string.Format();格式化为日期形式原创 2017-04-01 13:35:48 · 44091 阅读 · 2 评论 -
Asp.Net中ajax+aspx使用详解
ajax+aspx使用详解原创 2017-11-25 19:40:17 · 2583 阅读 · 1 评论 -
UpdatePanel的简单用法(非嵌套)
ScriptManager和UpdatePanel控件联合使用可以实现页面局部异步刷新的效果。UpdatePanel用来设置页面中局部异步刷新的区域,它必须依赖于ScriptManager,因为ScriptManager控件提供了客户端脚本生成与管理UpdatePanel的功能。原创 2017-09-03 23:19:24 · 4342 阅读 · 1 评论 -
C#中字符串的内存分配与暂存池【非常详细】
一、学会查看变量的内存地址想要研究C#中字符串的内存分配情况,如果能查看字符串的内存地址就好了。其实我们可以在VS2017中查看变量的内存地址,截图中有详细说明:二、string类型简单说明string是引用类型的,在C#中引用类型的内存分配在托管堆(堆内存)上。string不支持以下两种创建方式:string str01 = "heng";//错误创建方法1strin...原创 2019-02-20 23:36:52 · 7901 阅读 · 11 评论 -
WebApi 跨域问题解决方案:CORS
前两篇文章介绍了WebApi项目的创建和测试,今天来说说WebApi跨域访问的问题。本篇主要介绍了利用CORS解决跨域问题一些细节和具体步骤,下面来看看吧。一、发布WebApi既然是解决WebApi跨域问题,那WebApi(http://localhost:9002)和网站(http://localhost:57447)当然是单独部署了,只有这样WebApi服务和网站的域名才会不同,要不怎...原创 2018-11-17 12:06:44 · 5552 阅读 · 3 评论 -
Swagger使用方法详解(WebApi)——看完不会用你打我
WebApi接口开发完毕后,交付给前端人员或手机端开发者时接口说明文档是必不可少的配套设备,如果公司流程不规范大家使用口口相传的交接方式,而且没有改进的欲望,那你可以到此为止了。Swagger是方便测试接口,快速展示注释内容,生成Restful风格接口文档的框架。Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因:Swagger 可以生成一个具有互动性的API...原创 2018-11-12 18:17:09 · 18802 阅读 · 12 评论 -
WebApi路由机制详解——看完不会用你打我
随着前后端分离的大热,WebApi在项目中的作用也是越来越重要,由于公司的原因我之前一直没有机会参与前后端分离的项目,但WebApi还是要学的呀,因为这东西确实很有用,可单独部署、与前端和App交互都很方便,既然有良好的发展趋势,我们当然应该顺势而为——搞懂WebApi!从MVC到WebApi,路由机制一直都在其中扮演着重要的角色。它可以很简单:如果你只需要会用一些简单的路由,如/Home...原创 2018-11-12 00:25:04 · 41883 阅读 · 27 评论 -
C#异步多线程总结(delegate、Thread、Task、ThreadPool、Parallel、async、cancel)
同步与异步多线程的区别:1、同步方法卡界面(UI线程忙于计算);异步多线程不卡界面(主线程闲置,子线程在计算)2、同步方法慢(CPU利用率低、资源耗费少);异步多线程快(CPU利用率高、资源耗费多)3、同步方法是有序的;异步方法是无序的(启动无序、执行时间不确定、结束无序)实现异步多线程的6种方式与取消多线程:1、委托的异步调用2、Thread实现多线程3、Task实现多线程...原创 2018-10-13 12:02:47 · 11190 阅读 · 5 评论 -
C#读取.csv文件
由于项目需要把.csv文件中的信息写到数据库中,NPOI处理.csv文件不太好使所以得换一种方法,最后找到了LumenWorks.Framework.IO这个好东西,可以很方便的满足我的需求,引用也很方便直接在NuGet中安装即可。原创 2018-03-21 22:42:20 · 6187 阅读 · 3 评论 -
c#基础入门(3)——异常、三元表达式、转义符、类型转换
异常try{}catch(Exception ex){},try-catch之间不能有任何代码; 当try-catch在循环结构中时,发生异常不会跳出循环结构; 方法A中调用了方法B,如果B中抛出了异常但是B中没有异常处理机制,就会把异常交给父方法A处理,如果A中也没有异常处理机制,那就会交给Main方法处理,直到抛出系统异常。try{ string strNull =原创 2016-07-27 08:42:37 · 3360 阅读 · 1 评论 -
应用UpdatePanel后jQuery事件失效问题的解决方法
问题描述: 当第一次加载页面时,$(document).ready(function(){ })中的jQuery语句会正常执行,但是当页面部分刷新后,就不会执行了。原创 2018-01-28 09:32:37 · 2120 阅读 · 1 评论 -
Asp.Net中ajax+ashx使用详解
一、post请求+contentType=”application/json;charset=utf-8;”1、data:{action:”getString”,param1:123} 无法通过context.Request.Form[]获取参数值 通过context.Request.InputStream可以将参数转化原创 2017-11-26 00:19:05 · 1158 阅读 · 1 评论 -
C# string.Format使用说明
string.Format的五种重载原创 2017-03-31 16:03:11 · 15079 阅读 · 1 评论 -
ASP.NET中OnClientClick与OnClick的区别
OnClientClick是客户端事件处理方法,一般采用JavaScript进行处理,可以直接在浏览器中运行,不跟后台发生交互。原创 2017-03-27 18:14:47 · 5013 阅读 · 1 评论 -
C#中根据经纬度计算两点的距离
C#根据经纬度计算两点的距离原创 2017-02-25 16:57:08 · 9536 阅读 · 1 评论 -
委托(3)
同委托(1)原创 2016-08-10 18:03:08 · 322 阅读 · 1 评论 -
委托(1)
委托本质上是一种类型跟int、float、string一样,int、float、string可以作为参数传递,声明了委托之后方法也可以像int、float、string一样作为参数传递。 委托一般以EventHandler结尾。原创 2016-08-10 16:25:43 · 357 阅读 · 1 评论 -
C#文件下载
挺实用的文件下载功能原创 2016-09-09 17:45:33 · 419 阅读 · 1 评论 -
Npoi导出Excel、读取Excel
导入导出Excel挺常见的,记录学习下。原创 2016-08-31 21:57:54 · 619 阅读 · 1 评论 -
Winform捕获窗口关闭按钮触发的事件
Windows消息机制将窗口关闭按钮修改为其他功能原创 2016-08-18 22:21:43 · 10617 阅读 · 5 评论 -
RichTextBox替换文字并改变字体颜色
RichTextBox替换文字和改变关键字颜色原创 2016-08-18 18:11:09 · 6833 阅读 · 2 评论 -
ComboBox.Text="System.Data.DataRowView"的问题
ComboBox.Text="System.Data.DataRowView"的问题转载 2016-08-18 18:24:22 · 2918 阅读 · 2 评论 -
ListBox获取、设置选中项用法
SelectedItems、SelectedItem、Text、SelectionMode、SetSelected原创 2016-08-18 19:07:13 · 60387 阅读 · 2 评论 -
Cookie和Session的详细使用方法
进行Web开发,熟练地使用Cookie和Session是必须的,有时间来总结一下希望对大家都有用原创 2016-07-19 16:34:14 · 11153 阅读 · 1 评论 -
c#基础入门(5)——File、FileStream、StreamReader、StreamWriter
FileFile的用法如下:public void OperateFile(){ //example文件初始内容截图如图一 string filePath = @"e:\Study\test\example.txt"; if (File.Exists(filePath)) { //allText="蝈蝈first\r\n蝈蝈second\r\n蝈蝈third"原创 2016-07-29 00:05:52 · 2778 阅读 · 1 评论 -
c#基础入门(4)——File、Directory、Path
File、Directory、Path是实际开发中应用频率比较高的类,学习下,希望能对大家有帮助,打好基础很重要原创 2016-07-28 01:00:32 · 3778 阅读 · 1 评论