随笔分类 - 0.C#
摘要:一、WaitHandler的类层次 可以看到 WaitHandle是 事件(EventWaitHandle)、互斥体(Mutex)、信号量(Sempahore)的父类。 WaitHandle我们最经常使用的方法,并是使用它的静态方法WaitAll. 我们会发现在这个WaitHandle里面只有等待方法,也就是它会阻塞当前线程的执行。 那么如何要解除它对当前线程的阻塞呢,那么就需要依...
阅读全文
摘要:一、摘要 面试中无数次被问及到什么是接口,什么是抽象类,接口和抽象类有什么区别?什么是委托,什么是事件。 请写出猫叫了,老鼠跑了的例子。。。。。 这些东西对于一些初学者来说可能还真的有点搞不懂,对于一般工作5,6年以上的人来说,实在不屑一提, 二、个人理解 类:对事物或者某一个物体的概括描述 抽象类:对于一类事物的高度抽象。可以实现任何接口 接口:对方法的一组抽象提取。 事件:暴露给关联类的自定...
阅读全文
摘要:Windows Service这一块并不复杂,但是注意事项太多了,网上资料也很凌乱,偶尔自己写也会丢三落四的。所以本文也就产生了,本文不会写复杂的东西,完全以基础应用的需求来写,所以不会对Windows Service写很深入。本文介绍了如何用C#创建、安装、启动、监控、卸载简单的Windows S...
阅读全文
摘要:一:背景在web项目中经常需要生成json数据,返回给前端ajax.无论是ashx,还是WebMethod,可以人工的用字符串去拼接,最终得到json数据。有没有更好的方法呢?我个人推荐使用JavascriptSerializer序列化匿名对象。二:解决方案引用 System.Web.Script....
阅读全文
摘要:一、背景 在C#中,由于使用线程和调用UI的线程属于两个不同的线程,如果在线程中直接设置UI元素的属性,此时就会出现跨线程错误。 二、问题解决方法 使用控件自带的Invoke或者BeginInvoke方法。 ThreadPool.QueueUserWorkItem(ar => { this.button1.Invoke(new Action(() => { ...
阅读全文
摘要:一:反射的定义 审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等。 System.reflection命名空间包含的几个类,允许你反射(解析)这些元数据表的代码 Sys...
阅读全文
摘要:我们知道对于标准DLL,可以采用DllImport进行调用。例如:[DllImport("KMY350X.dll")]privatestaticexternintOpenPort(intPortNum,intBaudRate);如果一些厂家比较懒的话,没有提供相应的dll,我们只能对它进行串口通信编...
阅读全文