随笔分类 -  NET Core

摘要:LOCK实现线程同步 一、简介 线程安全概念:线程安全是指在当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程有可能和其他线程共享一些资源,比如,内存,文件,数据库等。当多个线程同时读写同一份共享资源的时候,可能会 阅读全文
posted @ 2021-05-28 14:22 码农阿亮 阅读(196) 评论(0) 推荐(0)
摘要:ThreadPriority 一、简介 如果在应用程序中有多个线程在运行,但一些线程比另一些线程重要,这种情况下可以在一个进程中为不同的线程指定不同的优先级。线程的优先级可以通过Thread类Priority属性设置,Priority属性是一个ThreadPriority型枚举,列举了5个优先等级: 阅读全文
posted @ 2021-05-28 11:47 码农阿亮 阅读(530) 评论(0) 推荐(0)
摘要:Suspend()和Resume() 一、简介 其实在C# 2.0以后, Suspent()和Resume()方法已经过时了。suspend()方法容易发生死锁。调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被”挂起”的线 阅读全文
posted @ 2021-05-28 11:35 码农阿亮 阅读(423) 评论(0) 推荐(0)
摘要:多线程的Join() 一、简介 Join方法主要是用来阻塞调用线程,直到某个线程终止或经过了指定时间为止。官方的解释比较乏味,通俗的说就是创建一个子线程,给它加了这个方法,其它线程就会暂停执行,直到这个线程执行完为止才去执行(包括主线程)。 二、代码 class Program { static v 阅读全文
posted @ 2021-05-28 11:06 码农阿亮 阅读(412) 评论(0) 推荐(0)
摘要:多线程的ResetAbort() 一、简介 Abort方法可以通过跑出ThreadAbortException异常中止线程,而使用ResetAbort方法可以取消中止线程的操作,下面通过代码演示使用 ResetAbort方法。 二、代码 class Program { static void Mai 阅读全文
posted @ 2021-05-28 10:44 码农阿亮 阅读(168) 评论(0) 推荐(0)
摘要:多线程Abort() 一、简介: Abort()方法用来终止线程,调用此方法强制停止正在执行的线程,它会抛出一个ThreadAbortException异常从而导致目标线程的终止。 二、代码 class Program { static void Main(string[] args) { Thre 阅读全文
posted @ 2021-05-28 10:36 码农阿亮 阅读(496) 评论(0) 推荐(0)
摘要:约束泛型 代码: namespace Demo5 { class Program { static void Main(string[] args) { int number = 20210527; string str = "Hello,2021-05-27"; //MyTest1传入参数类型必须 阅读全文
posted @ 2021-05-27 16:49 码农阿亮 阅读(71) 评论(0) 推荐(0)
摘要:C#等待异步操作执行完的方式 代码实现: namespace AsyncCallbackDemo1 { class Program { static void Main(string[] args) { //<参数,返回值> Func<int, int> mySum1 = SumNumbers; F 阅读全文
posted @ 2021-05-27 16:40 码农阿亮 阅读(1486) 评论(0) 推荐(0)
摘要:C#无损压缩图片 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Im 阅读全文
posted @ 2021-05-27 15:42 码农阿亮 阅读(212) 评论(0) 推荐(0)
摘要:Log4.net Helper工具类 一、Config文件配置 <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config. 阅读全文
posted @ 2021-05-27 15:18 码农阿亮 阅读(955) 评论(0) 推荐(1)
摘要:C#使用Log4.net记录日子文件 一、简介 1.1 Log4.net优点 几乎所有的大型应用都会有自己的用于跟踪调试的API。因为一旦程序被部署以后,就不太可能再利用专门的调试工具了。然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题。经验表明,日志记录往往是软件开发周期中的重要 阅读全文
posted @ 2021-05-27 11:35 码农阿亮 阅读(755) 评论(1) 推荐(2)
摘要:C#写XML文件 一、案例一 //XML文件写方法 //编写XML文件的格式并存储到指定的FilePath(路径) internal void WriterXML(string FilePath) { try { XmlDocument doc = new XmlDocument();//声明一个X 阅读全文
posted @ 2021-05-26 18:19 码农阿亮 阅读(470) 评论(0) 推荐(0)
摘要:调用QQ_Mail发送邮件 代码案例一: private void button1_Click(object sender, EventArgs e) { string myMaillAdress = ""; string myMaillPassword = ""; string myMaillMe 阅读全文
posted @ 2021-05-26 17:19 码农阿亮 阅读(147) 评论(0) 推荐(0)
摘要:C#中对Config配置文件的读写操作案例 一、简介 应用程序配置文件(App.config)是标准的 XML 文件,XML 标记和属性是区分大小写的。它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序。 *.exe.config配置文件样式: <?xml version 阅读全文
posted @ 2021-05-26 15:19 码农阿亮 阅读(688) 评论(0) 推荐(0)
摘要:C# 多线程的死锁 一、死锁简介: 在多道程序设计环境下,多个进程可能竞争一定数量的资源,。一个进程申请资源,如果资源不可用,那么进程进入等待状态。如果所申请的资源被其他等待进程占有,那么该等待的进程有可能无法改变状态,这种情况下称之为死锁。 二、死锁条件 死锁的四个条件: 1.非抢占:资源不能被抢 阅读全文
posted @ 2021-05-21 19:26 码农阿亮 阅读(591) 评论(0) 推荐(0)
摘要:Parallel.For()和Parallel.For<TLocal>() 一、简介: Parallel类提供了数据和任务的并行性;Paraller.For()方法类似于C#的for循环语句,也是多次执行一个任务。使用Paraller.For()方法,可以并行运行迭代,迭代的顺序没有定义。在For( 阅读全文
posted @ 2021-05-21 17:26 码农阿亮 阅读(217) 评论(0) 推荐(1)
摘要:复杂多线程环境下使用读写锁同步写入文件 代码一: class Program { static int LogCount = 1000; static int SumLogCount = 0; static int WritedCount = 0; static int FailedCount = 阅读全文
posted @ 2021-05-21 15:49 码农阿亮 阅读(217) 评论(0) 推荐(0)
摘要:C#使用读写锁解决多线程并发 一、简介: 在开发程序的过程中,难免少不了写入错误日志这个关键功能。实现这个功能,可以选择使用第三方日志插件,也可以选择使用数据库,还可以自己写个简单的方法把错误信息记录到日志文件。现在我们来讲下最后一种方法: 在选择最后一种方法实现的时候,若对文件操作与线程同步不熟悉 阅读全文
posted @ 2021-05-21 14:30 码农阿亮 阅读(723) 评论(1) 推荐(0)
摘要:LINQ简介 一、什么是LINQ 长期以来,开发社区形成以下的格局:1、面向对象与数据访问两个领域长期分裂,各自为政。 2、编程语言中的数据类型与数据库中的数据类型形成两套不同的体系,例如: C#中字符串用string数据类型表示。 SQL中字符串用NVarchar/Varchar/Char数据类型 阅读全文
posted @ 2021-05-17 17:41 码农阿亮 阅读(1370) 评论(0) 推荐(0)
摘要:实现自定义集合的 IEnumerable 和 IEnumerator 接口 namespace ConsoleApplication1 { //定义Person类 public class Person { //初始化 public Person(string fName, string lName 阅读全文
posted @ 2021-05-17 15:26 码农阿亮 阅读(114) 评论(0) 推荐(0)