随笔分类 - C#
摘要:Thread.Sleep和Task.Delay的区别 1、Thread.Sleep是同步延迟、Task.Delay是异步延迟 2、Thread.Sleep会阻塞线程,Task.Delay不会阻塞线程。 3、Thread.Sleep不能取消,Task.Delay可以取消。 4、Task.Delay会比
阅读全文
摘要:1.线程(Thread) 多线程的意义在于一个应用程序中,有多个执行部分可以同时执行;对于比较耗时的操作(例如io,数据库操作),或者等待响应(如WCF通信)的操作,可以单独开启后台线程来执行,这样主线程就不会阻塞,可以继续往下执行;等到后台线程执行完毕,再通知主线程,然后做出对应操作! 在C#中开
阅读全文
摘要:C#: 获取代码执行时间(精确到毫秒) private void Time(int i) { Stopwatch sw = new Stopwatch(); sw.Start(); Thread.Sleep(i); sw.Stop(); Console.WriteLine(sw.ElapsedTic
阅读全文
摘要:app.config: <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/></configSections> <log4net deb
阅读全文
摘要:集合表 private PdfPTable GetListRows(List<OutShowReportDetailDto> list) { PdfPTable table = new PdfPTable(6); table.TotalWidth = pdfContentWidth; int ind
阅读全文
摘要://LINQ: var temp = from p in db.jj_Credentials group p by p.ProfessionID into g select new { g.Key, MaxPrice = g.Max(p => p.CredentialsRankID) }; //EF
阅读全文
摘要:1.此 Demo 服务端环境: .NET Core 2.2,WebAPI, 客户端环境: 类库 EF4.7.2, 应用场景:以客户端为基础的连接机制,客户端的 ServerTimeout 最好是 服务端 KeepAliveInterval 的两倍 2.所用到的机制: 重连机制,心跳机制 3.服务端代
阅读全文
摘要:1.Task 属于异步后台线程 2.Task.Wait() 方法会阻塞主线程 3.task.Result 后台线程返回结果,才往下执行,会阻塞主线程 4.async 与 await 一般一起使用 5. await 不会阻塞主线程,只是让异步方法内部暂停或等待 6.Application.Curren
阅读全文
摘要:SqlCeEngine engine = new SqlCeEngine("data source=D:\\WPF_Database\\dbname.sdf;;password=111"); if (false == engine.Verify()) { engine.Repair(null, Re
阅读全文
摘要:一、串口通信简介 串行接口(串口)是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路,我们称为串行接口电路。 串口通信(Serial Communications)的概念非常简单,串口按位(bi
阅读全文
摘要:委托的自我理解:就是观察者与被观察者之间的行为事件。 父亲是被观察者 儿子是观察者 儿子随时观察父亲发出的命令 父亲只发布命令做什么,不关心儿子怎么去做 儿子收到父亲的委托命令,就去执行, class Program { static void Main(string[] args) { Sende
阅读全文
摘要:一、创建一个Windows Service 1)创建Windows Service项目 2)对Service重命名 将Service1重命名为你服务名称,这里我们命名为ServiceTest。 二、创建服务安装程序 1)添加安装程序 之后我们可以看到上图,自动为我们创建了ProjectInstall
阅读全文
摘要:Invoke或者BeginInvoke方法都需要一个委托对象作为参数。 委托类似于回调函数的地址,因此调用者通过这两个方法就可以把需要调用的函数地址封送给界面线程。这些方法里面如果包含了更改控件状态的代码,那么由于最终执行这个方法的是界面线程,从而避免了竞争条件,避免了不可预料的问题。如果其它线程直
阅读全文
摘要:string.Join(",", Table1.Select(o => o.Note).Where(o => !string.IsNullOrWhiteSpace(o)));//排除了note为null或为空格字符的情况
阅读全文
摘要:异常详细信息: System.ArgumentNullException: 值不能为 null。参数名: source 其实问题那就出在 Select() 方法,在 Select 上按 F12 查看定义 public static IEnumerable<TResult> Select<TSourc
阅读全文
摘要:using System; using System.IO; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace WindowsFormsApplication2 { public partial class Form2 : Form { ...
阅读全文
摘要:private void Fn_Post(T dto, string api) { HttpClient client = new HttpClient(); client.BaseAddress = new Uri("http://localhost:51529/"); string json = Defa...
阅读全文
摘要:IEnumerable:使用的是LINQ to Object方式,它会将AsEnumerable()时对应的所有记录都先加载到内存,然后在此基础上再执行后来的Query IQeurable(IQuerable<T>):不在内存加载持久数据,因为这家伙只是在组装SQL,(延迟执行) 到你要使用的时候,
阅读全文
摘要:POCO的名称有多种,pure old clr object、 plain ordinary clr object等 POCO的概念是指那些没有从任何类继承,也没有实现任何接口,更没有被其它框架侵入的C#对象 POCO的意义就在于它的简单和灵活性,因为他的简单和灵活,是得POCO能够任意扩展,从而胜
阅读全文
摘要:try{ context.SaveChanges();}catch (DbEntityValidationException ex){ var errorMessages = ex.EntityValidationErrors.SelectMany(validationResult => valid
阅读全文