.NET技术
HenryLubin
这个作者很懒,什么都没留下…
展开
-
AutoResetEvent与ManualResetEvent区别
在.Net多线程编程中,AutoResetEvent和ManualResetEvent这两个类经常用到, 他们的用法很类似,但也有区别。Set方法将信号置为发送状态,Reset方法将信号置为不发送状态,WaitOne等待信号的发送。可以通过构造函数的参数值来决定其初始状态,若为true则非阻塞状态,为false为阻塞状态。如果某个线程调用WaitOne方法,则当信号处于发送状态时,原创 2005-12-08 15:58:00 · 4351 阅读 · 5 评论 -
【译】10个鲜为人知的C#关键字
在正式开始之前,我需要先声明:这些关键字对于偏向底层的程序员更加耳熟能详,对这些关键字不了解并不影响你作为一个合格的程序员。这意味着这些关键字会让你在编写程序时得到更好的代码质量和可读性,enjoyyieldyield关键字会告诉编译器当前的函数是在一个循环内部,编译器会相应生成一个执行它在循环体内部所表示行为的类,yield和return关键字一起用于为枚举器对象提供返回值,比如说:在f转载 2010-05-24 17:48:00 · 690 阅读 · 0 评论 -
ObjectBuilder分析
http://blog.csdn.net/niwalker/archive/2005/12/31/567022.aspx转载 2010-05-19 15:38:00 · 728 阅读 · 0 评论 -
VS2008查看WinForm界面遇到的问题
<br />使用VS2008打开SFSC的源代码Solution时,打开工程里的界面,报“An error occurred while parsing EntityName. Line 2, position 48. ”的错误。<br />An error occurred while parsing EntityName. Line 2, position 48. <br />Hide <br />at System.Xml.XmlTextReaderImpl.Throw(Exception e原创 2010-07-16 16:12:00 · 1762 阅读 · 0 评论 -
集合
IEnumerableICollectionIDictionaryIList ListArrayDictionary原创 2010-05-19 00:22:00 · 569 阅读 · 0 评论 -
Xml序列化--根据配置文件直接生成实体类
系统中用到自定义的配置文件时,我们通常采用Xml序列化的方式来读取配置文件。这种方式比较困难的一点就是根据配置文件结构写出实体类,下面我们通过vs2005自带的工具xsd.exe自动生成实体类。 1. 编写配置文件结构,如sample.xml 2. 生成配置文件的架构文件sample.xsd。命令:[xsd sample.xml] 3. 生成实原创 2009-06-12 14:55:00 · 1770 阅读 · 0 评论 -
通过SQL Server直接获取excel的数据
--第一步: --启用Ad Hoc Distributed Queries: exec sp_configure show advanced options,1 reconfigure exec sp_configure Ad Hoc Distributed Queries,1 reconfigure go --第二步: select * from OPENROWS转载 2009-07-27 16:54:00 · 2489 阅读 · 0 评论 -
当重载方法遇上了params
这种情况估计有优先级的选择调用,请看如下代码: public class TestClass{ public static void TestMethod(string s0) { Console.WriteLine("1"); } public static void TestMethod(string s0原创 2009-07-13 12:58:00 · 625 阅读 · 0 评论 -
关于静态构造函数
我们可以用静态构造函数的方式来实现单例模式,但是有一点必须要注意,静态构造函数有一个弊端。如果构造函数抛出异常,则在以后对类的每次调用都会抛出异常,且异常与构造函数抛出的异常一样。因此在静态构造函数里必须对方法体抓异常才可以避免此问题。原创 2009-01-20 09:31:00 · 739 阅读 · 0 评论 -
EnterpriseLibrary之Caching
微软发布的EnterparseLibrary提供了许多功能,为我们的应用程序提供了许多方便,有缓存、配置、异常、数据访问、加密、日志等组件。项目中需要用到的Cache功能,便采用了EnterpriseLibrary的Cache组件。下面浅谈一下Cache的实用范围、用法及注意事项。 应用系统为了提升效率,可以将一些配置信息等不常改变的数据进行缓存以减少对数据源的读原创 2009-01-06 20:05:00 · 2204 阅读 · 0 评论 -
VS快捷键集锦
Shift+Alt+Enter: 切换全屏编辑Ctrl+B,T / Ctrl+K,K: 切换书签开关Ctrl+B,N / Ctrl+K,N: 移动到下一书签Ctrl+B,P: 移动到上一书签 Ctrl+B,C: 清除全部标签 Ctrl+I: 渐进式搜索 Ctrl+Shift+I: 反向渐进式搜索 Ctrl+F: 查找 Ctrl+Shift+F:转载 2008-01-16 23:33:00 · 1991 阅读 · 2 评论 -
一个任务池的实现
系统会向核心发送报文,但是核心并不是可以完全可以接受我们的消息并返回。现在需要实现这样一个功能,系统设定发往核心的最大session数,如果超过了这个限制则等待,直到核心给我们的系统返回处理情况,再继续发送。 系统和核心的交互式通过中间件Tuxedo来完成的。 首先想到的是使用队列,再起一个监控线程,每隔一段时间监控一下队列,如果队列里的任务项已经发送完成且返回,则把此原创 2008-01-16 23:10:00 · 3140 阅读 · 1 评论 -
Xml序列化的注意事项
上午同事问我一个问题,实体序列化时报了一个错:The type ConsoleTest.Item was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically. 分析之后,发现了问题,原来被序列化的实体其中一个Property的原创 2008-01-16 23:07:00 · 2015 阅读 · 0 评论 -
AutoResetEvent详解
不是线程的非终止状态是事件的非终止状态,AutoResetEvent形象说就像一个水龙头一样,当你关闭水龙头,状态就是关闭(终止状态),所有的水都在里面等待流出来,当水龙头打开,就发送一个事件说里面的水可以出来了,这时就是非终止状态,一般是用来同步访问资源AutoResetEvent类的对象,如ManualResetEvent对象一样,大家可以把它简单地理解为一个信号灯,使用AutoReset转载 2005-12-08 16:04:00 · 6875 阅读 · 3 评论 -
ThreadStatic属性用法
如果一个类型包含非静态字段(实例字段),则对于该字段,该类型的每个实例均有其自身的独立存储位置;在一个实例中设置字段并不影响其他实例中该字段的值。而相反,对于静态字段,无论有多少实例,该字段只位于一个存储位置(或者,更具体地说,在每个 AppDomain 中,只位于一个存储位置)。然而,如果将 System.ThreadStaticAttribute 应用于静态字段,则该字段将变为线程静态字段,即转载 2011-06-29 19:17:00 · 2314 阅读 · 0 评论