摘要:在编写代码的过程中,经常会遇到这样的选择,检查到一个不正常的情况,或者某个操作失败,或者检测到某个异常,此后该怎么办?是抛出一个异常?还是放回一个表示操作失败的返回值?前一段在北京和小汤他们谈起这个问题的时候,有了一些粗略的想法。这段时间在 Leo4Net 的开发中,一些想法逐步清晰起来。=== a...
阅读全文
摘要:摘要:.NET 是 Microsoft XML Web services 平台。MEF是.NET Framework 4.0一个重要的库,Visual Studio 2010 Code Editor的扩展支持也是基于MEF构建的。下面让我们一起来看。 MEF(Managed Extensibili...
阅读全文
摘要:在命名空间System.Threading.Tasks下,有一个静态类Parallel简化了在同步状态下的Task的操作。Parallel主要提供了3个有用的方法:For、ForEach、Invoke。For方法,主要用于处理针对数组元素的并行操作,如下:staticvoidMain(string[...
阅读全文
摘要:Parallel类是.NET 4中新增的抽象线程类。如果你开发用的是VS2008或更低版本,那么就直接关闭吧,下面两个示例用了匿名委托,如果不知道匿名委托的语法,那么先去简单了解一下,不然很难理解示例代码。 Parallel.For()方法类似于C#的for循环语句,也是多次执行一个任务。使用Pa...
阅读全文
摘要:今天详细说一下ManualResetEvent它可以通知一个或多个正在等待的线程已发生事件,允许线程通过发信号互相通信,来控制线程是否可心访问资源当一个线程开始一个活动(此活动必须完成后,其他线程才能开始)时,它调用Reset以将ManualResetEvent置于非终止状态。此线程可被视为控制Ma...
阅读全文
摘要:不管我们使用thread,threadPool,task,还是APM异步,本质都是在使用多线程。对于新手来说,不太敢用多线程的原因,就我个人的体验来说,就是对多线程的异常捕获方式或时机缺乏了解,而一旦出现异常没有捕获,将会带来难以发现的bug,进而造成系统崩溃。而多线程本身也不是一朝一夕就能学好的,...
阅读全文
摘要:一、获取当前文件的路径1.System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName获取模块的完整路径,包括文件名。2.System.Environment.CurrentDirectory获取和设置当前目录(该进程从中启动的...
阅读全文
摘要:刚刚在写一段直播室网站中的一段程序遇,突然遇到一个错误,如下'TVLLKBLL.BaseClass' does not contain a constructor that takes 0 arguments,根据撑握的C#知道来剖析一下该错误的原因俱体情况是这样的,业务逻辑中有两个类,分别是Pub...
阅读全文
摘要:dynamic是FrameWork4.0的新特性。dynamic的出现让C#具有了弱语言类型的特性。编译器在编译的时候不再对类型进行检查,编译期默认dynamic对象支持你想要的任何特性。比如,即使你对GetDynamicObject方法返回的对象一无所知,你也可以像如下那样进行代码的调用,编译器不...
阅读全文
摘要:Reset(): 当一个线程开始一个活动(此活动必须完成后,其他线程才能开始)时,它调用 Reset 以将 ManualResetEvent 置于非终止状态。此线程可被视为控制 ManualResetEvent。为了把状态修改为无信号的,必须调用ReSet()方法。WaitOne(): 调用Manu...
阅读全文
摘要:我们平常用的都是对象的强引用,如果有强引用存在,GC是不会回收对象的。我们能不能同时保持对对象的引用,而又可以让GC需要的时候回收这个对象呢?.NET中提供了WeakReference来实现。弱引用可以让您保持对对象的引用,同时允许GC在必要时释放对象,回收内存。对于那些创建便宜但耗费大量内存的对象...
阅读全文
摘要:加菲猫Just have a little faith.C#弱引用.NET框架提供了另一有趣的特色,被用于实现多样的高速缓存。在.NET中弱引用通过System.WeakReference类实现。弱引用为引用的对象提供一项机制,使被引用的对象能够被垃圾收集器作用。ASP.NET高速缓存就使用了弱引用...
阅读全文
摘要:该attribute可以把指定的文件拷贝到每次运行的Out目录下,比如有一个config文件,那么用下面的命令, [TestClass] [DeploymentItem("Default.config")] public class NewSMTest则每次MSTEST运行,都会拷到其OUT下...
阅读全文
摘要:public void TestF() { Test += Fun; } public void Fun(Person p) { } // 如 Person变成 SubPerson,则报错。。public void Fun(SubPerson p) { } public event A...
阅读全文
摘要:第一套代码将producer Consumer的逻辑写到from类里了,方便在demo的显示界面动态显示模拟生产和消费的过程。 第二套代码将producer Consumer的逻辑单独写到一个类中,使用委托的方法在from中回显生产消费的过程。 Demo中均以3个线程作为消费者,1个线程作为生产...
阅读全文
摘要:http://www.csharpwin.com/csharpspace/8927r1397.shtmlMSDN建议按照下面的模式实现IDisposable接口:1 public class Foo: IDisposable2 {3 public void Dispose()4 {5 Dispose...
阅读全文
摘要:using(Mype x = ...), Mype必须实现了IDisposable, 因为CLR会自动调用Dispose()方法
阅读全文
摘要:MyType a = null;if (a is MyType) == False
阅读全文
摘要:A -> virtual FunB : A -> override FunC : B -> override FunD : C -> new virtual FunE : D -> override FunE e;A = e -> C.FunB = e -> C.FunC = e -> C.FunD...
阅读全文