摘要:
.Net SDK下有很多命令工具,有许多在我们平时开发应用中很有帮助。最近看书总结了一些,但是难免有点以偏概全,挂一漏万。下面就介绍这些命令的基本用法,实际应用中可以参考MSDN。 切入正题,打开SDK命令提示,如下图:1、ildasm (IL Disassembler IL 反汇编器)。 它是一个重要的工具,通过它,可以查看元数据(metedata)信息,IL等。 保存、查看IL代码:在VS2008命令窗口输入ILDAsm,然后通过它的【文件】菜单打开文件,如下图:查看元数据信息:在ILDASM中按"Ctrl+M"即能查看元数据信息。如下图 2、SN.exe(Strong 阅读全文
摘要:
异步的核心: IAsyncResultAsynchronousProgrammingModel整个异步调用过程中都是围绕IAsyncResult来进行的,大家可以看看上篇文章的例子,BeginXXX返回这个对象,EndXXX接收这个对象来结束当前异步对象,下面我们来看看IAsyncResult接口成员/和实现此接口的AsyncResult类成员(其中有些在上篇中已经涉及到)IAsyncResult接口1publicinterfaceIAsyncResult2{3WaitHandleAsyncWaitHandle{get;}//阻塞一个线程,直到一个或多个同步对象接收到信号4BooleanIsC 阅读全文
摘要:
现在扩充下上篇文章的类(AsyncTest),提供更多的例子并从中做下简单的对比,从新的认识下异步的内部机制,下面我们增加一个新的委托1步,我们添加一个新方法(计算年薪YearlySalary)publicdecimalYearlySalary(decimalsalary,intmonthCount,decimalbonus);2步,为这个方法增加异步的功能,这样我们仍然使用委托(Delegate)publicdelegatedecimalSalaryEventHandler(decimalsalary,intmonthCount,decimalbonus);经过简单修改后,下面是我们新的As 阅读全文
摘要:
在阅读下面知识前,我已经认为你已经具有c#的基础,包括简单的委托知识;代码使用VS2008开发,但是会在.Net Framework 2.0(C Sharp)编写什么是.Net异步机制呢? 在解释这个话题前,我们先看看同步的程序,就是我们常用的Hello World 程序。Code 1:1classProgram2{3staticvoidMain(string[]args)4{5//查看当前的线程ID,是否线程池里面的线程6Console.WriteLine("1,ThreadID:#{0},IsPoolThread?{1}",Thread.CurrentThread.Ma 阅读全文
摘要:
静态构造函数是C#的一个新特性,其实好像很少用到。不过当我们想初始化一些静态变量的时候就需要用到它了。这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调用。 classSimpleClass{//StaticconstructorstaticSimpleClass(){//}} 在使用静态构造函数的时候应该注意几点: 1、静态构造函数既没有访问修饰符,也没有参数。因为是.NET调用的,所以像public和private等修饰符就没有意义了。 2、是在创建第一个类实例或任何静态成员被引用时,.... 阅读全文
摘要:
Visual Studio 2010其他版本此主题尚未评级评价此主题静态构造函数用于初始化任何静态数据,或用于执行仅需执行一次的特定操作。在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数。C#class SimpleClass{ // Static variable that must be initialized at run time. static readonly long baseline; // Static constructor is called at most one time, before any // instance const... 阅读全文
摘要:
AutoResetEvent 有两种状态 一种终止状态,另一种 非终止状态构造函数有个bool参数,true 是终止, false 是非终止WaitOne 是用来等待的,如果AutoResetEvent 处于 非终止状态 那么会一直等待,直至调用 Set如果是终止状态 ,那么不会阻塞 会继续调用 Set 就是告知 我的工作完成了,我现在可以走了 ,大家久等了.线程阻塞成立的一对条件:1.线程中包含waitone();2.AutoResetEvent(bool)的bool为false,即事件状态为非终止状态;set()方法是将事件状态设置为终止状态(其实就是破坏第2个条件),允许一个或多个等待线 阅读全文
摘要:
概述AutoResetEvent 允许线程通过发信号互相通信。 通常,当线程需要独占访问资源时使用该类。线程通过调用 AutoResetEvent 上的 WaitOne 来等待信号。 如果 AutoResetEvent 为非终止状态,则线程会被阻止,并等待当前控制资源的线程通过调用 Set 来通知资源可用。调用 Set 向 AutoResetEvent 发信号以释放等待线程。 AutoResetEvent 将保持终止状态,直到一个正在等待的线程被释放,然后自动返回非终止状态。 如果没有任何线程在等待,则状态将无限期地保持为终止状态。如果当 AutoResetEvent 为终止状态时线程调用 W 阅读全文