<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cdc8596的博客]]></title><description><![CDATA[happy to write program]]></description><link>https://blog.youkuaiyun.com/cdc8596</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cdc8596]]></copyright><item><title><![CDATA[.Net6.0系列-8 依赖注入(一)]]></title><link>https://blog.youkuaiyun.com/cdc8596/article/details/130029004</link><guid>https://blog.youkuaiyun.com/cdc8596/article/details/130029004</guid><author>cdc8596</author><pubDate>Tue, 11 Apr 2023 18:14:45 +0800</pubDate><description><![CDATA[3.ServiceCollection用来构造容器对象IServiceProvider,调用ServiceCollection的BuliderServiceProvider()创建ServiceProvider,可以用来获取BuliderServiceProvider()之前ServiceCollection中的对象。服务(Service):和框架请求之后返回的一个对象,可以是一个数据库链接,也可以是一个文件处理的方法,或者是数据处理的一个过程方法。服务容器:负责管理注册的服务。]]></description><category></category></item><item><title><![CDATA[.Net6.0系列-7 .Net 6LinQ(三)常用扩展方法]]></title><link>https://blog.youkuaiyun.com/cdc8596/article/details/129766253</link><guid>https://blog.youkuaiyun.com/cdc8596/article/details/129766253</guid><author>cdc8596</author><pubDate>Sat, 25 Mar 2023 16:27:50 +0800</pubDate><description><![CDATA[四 LinQ使用建议:当需要计算大量数据,并需要瞬间完成的时候不建议使用LinQ,如图形处理图片中的每一个像素点的时候,需要瞬间完成,并将图片瞬间显示出来可以使用三元运算符/或者Math/或者自己使用基础算法写。where()的返回集合是Enumerable,返回的是T的全部字段,而Select是可以返回集合的任意需要的字段。一.投影:把集合中的每一项转换为另一种类型使用的是Select()方法。find()是在lamada表达式中的使用,以上两个是LinQ的使用。三 链式编程:多条件一起查询。]]></description><category></category></item><item><title><![CDATA[.Net6.0系列-6 .Net 6LinQ(二)常用扩展方法]]></title><link>https://blog.youkuaiyun.com/cdc8596/article/details/129636466</link><guid>https://blog.youkuaiyun.com/cdc8596/article/details/129636466</guid><author>cdc8596</author><pubDate>Sat, 25 Mar 2023 13:46:39 +0800</pubDate><description><![CDATA[LinQ的where返回的IEnumerable,所有的括号中都可以写lamada表达式,list,数组等都可以用LinQ。FirstOrDefault():返回第一条或者默认值,会在没有记录的时候返回null,所以建议在编程的时候使用这个方法。SingleOrDefault():最多只有一条满足要求的数据,0条记录则会返回0或者null,当有多条数据时会报错。Single():有且只有一条数据,First():至少有一条,返回第一条数据,Any():判断集合中是否存在一条数据,返回的是布尔类型。]]></description><category></category></item><item><title><![CDATA[.Net6.0系列-5.Net 6LinQ(一)揭秘及优势]]></title><link>https://blog.youkuaiyun.com/cdc8596/article/details/129560691</link><guid>https://blog.youkuaiyun.com/cdc8596/article/details/129560691</guid><author>cdc8596</author><pubDate>Sat, 18 Mar 2023 14:14:02 +0800</pubDate><description><![CDATA[2.Net中定义了泛型委托Action(无返回值)和Func(有返回值),所以一般不用自定义委托类型。二:匿名委托的使用,这里主要是一步一步的从委托类型的写法,转换为Lamada表达式的写法。一.LinQ让数据处理变的简单,但是执行效率不一定最高, 本质就是委托。1.委托是可以指向方法的类型。3.c#中的var是强类型的。]]></description><category></category></item><item><title><![CDATA[.Net6.0系列-4.Net 6及以上异步编程Cancellation以及WhenAll/WhenAnyToken详解(三)]]></title><link>https://blog.youkuaiyun.com/cdc8596/article/details/129406513</link><guid>https://blog.youkuaiyun.com/cdc8596/article/details/129406513</guid><author>cdc8596</author><pubDate>Sun, 12 Mar 2023 10:55:15 +0800</pubDate><description><![CDATA[Cancellation详解以及在web开发使用情形,当用户关闭浏览器或者访问别的网页的时候该网页的请求如果在服务器端没有完成的,则服务器会自动终止访问请求,可以节省服务器资源。1.Task WhenAny(IEnumerable tasks):只要tasks中的任何一个Task完成,即可向下执行。2.Task WhenAll(IEnumerable tasks):等待tasks中的Task全部完成,才会向下执行。ThrowIfCancellationRequested():如果任务被取消,就抛出异常。]]></description><category></category></item><item><title><![CDATA[.Net6.0系列-3.Net 6及以上异步编程(二)]]></title><link>https://blog.youkuaiyun.com/cdc8596/article/details/129217287</link><guid>https://blog.youkuaiyun.com/cdc8596/article/details/129217287</guid><author>cdc8596</author><pubDate>Mon, 06 Mar 2023 21:30:45 +0800</pubDate><description><![CDATA[一.异步方法不等于多线程,异步方法的代码并不会自动在新线程中执行除非手动将代码放到新线程中
二.为什么有的异步没有用async修饰
async方法的缺点:1.异步方法会生成一个类,运行效率没有普通方法高 2.可能会占用非常多的线程
标明async只是为了更方便的使用await,第二种没有使用async,如果需要将Task的结果拿出来进行操作的时候
需要使用async和await
三 .为什么尽量少使用Thread.Sleep();]]></description><category></category></item><item><title><![CDATA[.Net6.0系列-2.Net 6及以上异步编程(一)]]></title><link>https://blog.youkuaiyun.com/cdc8596/article/details/129046716</link><guid>https://blog.youkuaiyun.com/cdc8596/article/details/129046716</guid><author>cdc8596</author><pubDate>Sat, 25 Feb 2023 16:27:11 +0800</pubDate><description><![CDATA[进行切分为多个状态(swich(){case}),对async方法的调用会被拆分为对MoveNext的调用,await看似等待,经过编译。可用ILSpy反编译器反编译,该代码,可知async的方法会被C#编译器编译成一个类,根据await调用。await调用的等待期间,.Net会把当前的线程返回会给线程池,等异步方法调用执行完毕之后,1.异步方法的返回值一般是Task,T是返回类型,Task,异步方法以Async结尾.框架会从线程池再取出一个线程来执行后续的代码,如果下面的代码sb很短,则不会切换线程,]]></description><category></category></item><item><title><![CDATA[.Net6.0系列-1.Net 6及以上知识点整理-基础知识]]></title><link>https://blog.youkuaiyun.com/cdc8596/article/details/129089777</link><guid>https://blog.youkuaiyun.com/cdc8596/article/details/129089777</guid><author>cdc8596</author><pubDate>Mon, 20 Feb 2023 15:02:11 +0800</pubDate><description><![CDATA[文件发布选项:生成单个文件(只生成一个文件,所有文件封装到一个文件里面 *.exe)/启用readyToRun(启动更快,文件更大)选择独立运行时–>目标运行时:分为可移植的(目标电脑安装框架)与具体目标框架(win/linux/osx(苹果系统))项目上右键点击–>发布–>(设置完成路径设置)…–>点击"完成"–>进入发布界面–>点击"编辑"进入发布配置部署模式可选择:依赖框架(运行电脑需要安装)和独立发布(直接复制到目标电脑即可运行)]]></description><category></category></item><item><title><![CDATA[bootstrap系列-7.BooStrap表单(下)]]></title><link>https://blog.youkuaiyun.com/cdc8596/article/details/126566630</link><guid>https://blog.youkuaiyun.com/cdc8596/article/details/126566630</guid><author>cdc8596</author><pubDate>Sun, 28 Aug 2022 09:48:20 +0800</pubDate><description><![CDATA[bootstrap系列讲解]]></description><category></category></item><item><title><![CDATA[bootstrap系列-6.BooStrap表单(上)]]></title><link>https://blog.youkuaiyun.com/cdc8596/article/details/126533128</link><guid>https://blog.youkuaiyun.com/cdc8596/article/details/126533128</guid><author>cdc8596</author><pubDate>Thu, 25 Aug 2022 21:45:26 +0800</pubDate><description><![CDATA[bootstrap系列讲解]]></description><category></category></item><item><title><![CDATA[bootstrap系列-5.BooStrap表格]]></title><link>https://blog.youkuaiyun.com/cdc8596/article/details/126511865</link><guid>https://blog.youkuaiyun.com/cdc8596/article/details/126511865</guid><author>cdc8596</author><pubDate>Wed, 24 Aug 2022 20:06:26 +0800</pubDate><description><![CDATA[bootstrap系列讲解]]></description><category></category></item><item><title><![CDATA[bootstrap系列-4.BooStrap Css代码]]></title><link>https://blog.youkuaiyun.com/cdc8596/article/details/126493385</link><guid>https://blog.youkuaiyun.com/cdc8596/article/details/126493385</guid><author>cdc8596</author><pubDate>Tue, 23 Aug 2022 21:33:54 +0800</pubDate><description><![CDATA[css系列讲解]]></description><category></category></item><item><title><![CDATA[bootstrap系列-3.CSS栅格]]></title><link>https://blog.youkuaiyun.com/cdc8596/article/details/126493359</link><guid>https://blog.youkuaiyun.com/cdc8596/article/details/126493359</guid><author>cdc8596</author><pubDate>Tue, 23 Aug 2022 21:31:31 +0800</pubDate><description><![CDATA[css样式系列讲解3]]></description><category></category></item><item><title><![CDATA[bootstrap系列-2.css排版]]></title><link>https://blog.youkuaiyun.com/cdc8596/article/details/126392992</link><guid>https://blog.youkuaiyun.com/cdc8596/article/details/126392992</guid><author>cdc8596</author><pubDate>Wed, 17 Aug 2022 20:02:30 +0800</pubDate><description><![CDATA[bootStrap系列讲解]]></description><category></category></item><item><title><![CDATA[bootstrap系列-1.简单的Demo]]></title><link>https://blog.youkuaiyun.com/cdc8596/article/details/126392908</link><guid>https://blog.youkuaiyun.com/cdc8596/article/details/126392908</guid><author>cdc8596</author><pubDate>Wed, 17 Aug 2022 19:36:43 +0800</pubDate><description><![CDATA[bootStrap系列讲解]]></description><category></category></item><item><title><![CDATA[wpf中调用按钮点击动作]]></title><link>https://blog.youkuaiyun.com/cdc8596/article/details/123222864</link><guid>https://blog.youkuaiyun.com/cdc8596/article/details/123222864</guid><author>cdc8596</author><pubDate>Wed, 02 Mar 2022 09:53:06 +0800</pubDate><description><![CDATA[wpf中没有performclick的方法,可以这样写:
1.bt1.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
问题：这样调用按钮事件有可能引发错误：调用线程无法访问此对象，因为另一个线程拥有该对象。
2.解决方法
这个问题出现的原因主要是线程间的访问限制导致的，如果想要访问可以通过委托来进行访问
this.bt1.Dispatcher.Invoke(
new Action(
delegate
{
bt1.RaiseEvent(new Route]]></description><category></category></item><item><title><![CDATA[C# 基础 Dictionary(字典)和ConcurrentDictionary(线程安全的字典)]]></title><link>https://blog.youkuaiyun.com/cdc8596/article/details/123014787</link><guid>https://blog.youkuaiyun.com/cdc8596/article/details/123014787</guid><author>cdc8596</author><pubDate>Sat, 19 Feb 2022 09:58:34 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/weixin_41561640/article/details/106868304

]]></description><category></category></item><item><title><![CDATA[C#中Hashtable用法详解(包括线程同步)]]></title><link>https://blog.youkuaiyun.com/cdc8596/article/details/123006762</link><guid>https://blog.youkuaiyun.com/cdc8596/article/details/123006762</guid><author>cdc8596</author><pubDate>Fri, 18 Feb 2022 17:10:04 +0800</pubDate><description><![CDATA[本博客参考了:https://www.cnblogs.com/xpvincent/archive/2013/01/15/2860841.html
使用HashTable的情况:1.数据量很大  2.高频查询  3.数据类型不唯一
基本操作:
//添加一个keyvalue键值对：
HashtableObject.Add(key,value);

//移除某个keyvalue键值对：
HashtableObject.Remove(key);

//移除所有元素：           
HashtableObje]]></description><category></category></item><item><title><![CDATA[WinForm和WPF中使用字体图标ICON]]></title><link>https://blog.youkuaiyun.com/cdc8596/article/details/122963464</link><guid>https://blog.youkuaiyun.com/cdc8596/article/details/122963464</guid><author>cdc8596</author><pubDate>Wed, 16 Feb 2022 15:11:02 +0800</pubDate><description><![CDATA[Winform中使用桌面图标:
1.从https://www.iconfont.cn/ 网址下载对应的图标
2.新建一个Winform项目，创建字体类
(1)图中1是在突变网站下载的字体,放到根路径下
(2)引用对应的字体
3.Winform使用范例
注意使用格式如框中所标,

4.Wpf使用范例,与winform的Text使用格式不一致,引用路径方式也不一样
5.

...]]></description><category></category></item><item><title><![CDATA[wpf--获取单元格的内容]]></title><link>https://blog.youkuaiyun.com/cdc8596/article/details/122011759</link><guid>https://blog.youkuaiyun.com/cdc8596/article/details/122011759</guid><author>cdc8596</author><pubDate>Sat, 18 Dec 2021 14:29:34 +0800</pubDate><description><![CDATA[最好的方法是使用Items属性并直接访问您的数据项：

var dataItem = dataGrid.Items[0] as …;
当然也可以直接通过数据源进行获取，应为datagrid绑定数据之后是同步的，但是如果一个数据源还没有数据，需要从前台输入的时候，这是后光标还在单元格里面，就需要使用下面这种方法了，可以获取行列，然后根据行列来获取，用于插入批次等情况，方便操作
但是您可以使用此类来获取单元格并使用GetValue()方法访问该值(更像您的示例).
代码取自此处：datagrid get c..]]></description><category></category></item></channel></rss>