代码改变世界

随笔分类 -  .NET

C#基础:通过一个实例来学习IFormattable接口,扩展方法

2013-04-19 18:30 by 海豚座, 2206 阅读, 收藏, 编辑
摘要: 本实例中,定义了类型Student。Racer定义了几个属性和一个重载的ToString()方法,该方法以字符串格式显示学生信息。这个类实现了IFormattable接口,以支持格式字符串的不同变体。 Student类声明如下: class Student:IFormattable { public string Name { get; set; }//姓名 public string Age { get; set; }//年龄 public string Address { get; set; }//地址 public... 阅读全文

C#基础:使用Task创建任务

2012-06-18 13:44 by 海豚座, 8204 阅读, 收藏, 编辑
摘要: .NET 4 中 包含了新名称空间System.Threading.Task。它包含的类抽象出了线程的功能。使用Task类创建的任务是后台线程,所以在前台线程全部终止的时候,如果任务还没有全部执行万,就会被被动终止。启动任务 怎样启动一个任务?代码中我们首先要添加using System.Threading.Tasks;引用。我们可以使用TaskFactory类或Task类的构造函数和Start()方法。在启动任务时,会创建Task类的一个实例。首先我们看一段代码using System;using System.Text;using System.Threading.Tasks;usi... 阅读全文

C#基础:使用Thread创建线程

2012-06-16 00:04 by 海豚座, 32316 阅读, 收藏, 编辑
摘要: Thread类可以创建和控制线程,Thread类的构造函数重载为接受ThreadStart和ParameterizedThreadStart类型的委托参数。下面我们用一个例子来解释怎样用Thread类来创建一个简单的线程 static void Main(string[] args) { #region Thread无参数举例 Thread th = new Thread(ThreadChild); th.Start(); Console.WriteLine("Main Thr... 阅读全文

C#基础:线程之异步回调(委托)

2012-06-15 00:11 by 海豚座, 14281 阅读, 收藏, 编辑
摘要: 异步回调,什么是异步回调?我是这样理解的,当主线程在执行一段代码的时候,我们用委托执行了一个线程,这个线程要返回一个结果,关键是什么时候返回这个结果,异步回调就是在这个线程执行完成后立即返回这个线程的结果,然后继续执行主线程的方法。 在讨论异步回调之前我们先依次来讨论一下同步执行和异步执行,最后来讨论异步回调。一、同步执行 同步执行:在主线程执行的时候,主线程调用一个其它方法,此时主线程阻塞,等待调用方法执行完成后主线程才能继续执行。 下面是同步执行的流程图 接下来看看代码中的同步执行 static void Main(string[] args) ... 阅读全文

C#基础:线程之异步委托

2012-06-14 00:27 by 海豚座, 1546 阅读, 收藏, 编辑
摘要: 线程:是程序中独立的指令流。在我们熟悉的Visual Studio编辑器中输入C# 代码的时候,系统会自动分析代码,提示你输入的代码出现的各种错误,这是一个后台线程完成的。 创建线程的一种简单的方式就是定义一个委托,并一部调用它。Delegate类支持异步调用方法,在后台,Delegate类会创建一个执行任务的线程。为了说明委托的异步性,从一个需要一定时间的方法讨论,方法如下所示:static int TakesAWhile(int data, int ms){ Console.WriteLine("TakesAWhile start"); Thread.Sleep(ms. 阅读全文