代码改变世界

WPF调用线程(三)线程池初步

2011-04-05 23:47 by 杨延成, 4270 阅读, 2 推荐, 收藏, 编辑
摘要:当我们频繁的要调用线程来执行任务时,一个好的办法是采用线程池来对线程进行管理,“线程池”是可以用来在后台执行多个任务的线程集合。 每个传入请求都将分配给线程池中的一个线程,因此可以异步处理请求,而不会占用主线程,也不会延迟后续请求的处理。一旦池中的某个线程完成任务,它将返回到等待线程队列中,等待被再次使用。 这使应用程序可以避免为每个任务创建新线程的开销。线程还是比较昂贵的。(you must avoid using threads as much as possible because they consume a lot of memory and they require time to 阅读全文

C#结合反射实现抽象工厂

2011-04-04 20:57 by 杨延成, 1189 阅读, 2 推荐, 收藏, 编辑
摘要:抽象工厂,大名鼎鼎的设计模式之一,我这仅做了一个例子,来简单记录一下,先来类图具体代码namespace AbstractFactoryTest{ class Program { static void Main(string[] args) { //具体工厂类型可以由配置文件中读取 IFactory carFactory = CarFactory.CreateFacory("ThreadTest.AudiFactory"); ICar car = carFactory.CreateCar(); car.Run(); } } public class CarFactory 阅读全文

C#3.0新特性示例学习(七)-Linq to object(4)分组查询

2011-04-04 19:08 by 杨延成, 408 阅读, 0 推荐, 收藏, 编辑
摘要:1using System; 2using System.Collections.Generic; 3using System.Linq; 4using System.Text; 5 6namespace TestLinQ2 7{ 8 public class Book 9{10 public string Title { set; get; }11 public Author Book_Author { set;get;}12 public float Price { set; get; }13 }14 public class Author15{16 public string Name 阅读全文

C#3.0(六)-Linq to object(3)查询方法操作集合

2011-04-04 19:02 by 杨延成, 550 阅读, 0 推荐, 收藏, 编辑
摘要:Linq中的查询方法的使用,看代码吧! 1using System; 2using System.Collections.Generic; 3using System.Linq; 4using System.Text; 5 6namespace TestLinQ2 7{ 8 class Student 9 { 10 public string Name 11 { 12 set; 13 get; 14 } 15 public int ID 16 { 17 set; 18 get; 19 } 20 } 21 22/// 通过使用 C# 3.0 中引入的声明性查询语法, 23/// 介绍性 LINQ 阅读全文

C#3.0(五)--Linq to object(2)操作集合

2011-04-04 19:01 by 杨延成, 452 阅读, 0 推荐, 收藏, 编辑
摘要:什么都不说了,看代码吧,有问题跟贴!1using System; 2using System.Collections.Generic; 3using System.Linq; 4using System.Text; 5 6namespace TestLinQ2 7{ 8 class Student 9 {10 public string Name11{12 set;13 get;14 }15 public int ID16 {17 set;18 get;19}20}21class Program22 {23static void Main(string[] args)24{25///数组测试2 阅读全文

VS2008开发-Linq to sql

2011-04-04 18:58 by 杨延成, 512 阅读, 1 推荐, 收藏, 编辑
摘要:首先创建一个C#控制台工程LINQToSQL,然后打开服务浏览器,单击右键,创建数据库Student数据库创建数据库完成后,创建表stu_info在解决方案管理器中击右键,选择添加新项,在弹出窗口中选择Linq to sql class 创建完成后,在服务管理器中,拖到刚创建的表Stu_info到Student.dbml中,打开Program.cs文件,键入如下代码: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 namespace LINQToSQ 阅读全文

C#3.0(四)--Linq to Objects

2011-04-04 18:53 by 杨延成, 389 阅读, 0 推荐, 收藏, 编辑
摘要:Linq(Language Integrated Query )查询语法跟SQL查询语法很相识,除了先后顺序. 1 //Demo 2 namespace TestLINQ 3 { 4 class Program 5 { 6 static void Main(string[] args) 7 { 8 ///创建数据源 9 int[] numbers = new int[] { 0, 1, 2, 3, 4, 5, 6 };10 ///创建查询11 /// 查询会返回 IEnumerable 类型,我们可以直接去获取12 /// IEnumerable numQuery =13 /// from n 阅读全文

C#3.0-Lambda表达式

2011-04-04 18:44 by 杨延成, 567 阅读, 1 推荐, 收藏, 编辑
摘要:Lambda表达式是一个匿名方法,他可以包含一个表达式或者语句块,他能够创造委托或表达式树类型。 1 //Demo -带一个参数的Lambda表达式 2 namespace TestLambda 3 { 4 //声明一个委托,包含一个int型参数 5 delegate int del(int n); 6 7 public class MyLambda 8 { 9 public int TestMethod(int n) 10 { 11 ///利用Lambda表达式构造一个委托 12 /// x => x * x 表达式表示一个方法此方法等同于 13 /// public int Meth 阅读全文

C#3.0-扩展方法

2011-04-04 18:42 by 杨延成, 347 阅读, 0 推荐, 收藏, 编辑
摘要:扩展方法是给现有类型添加一个方法。现在类型即可是基本数据类型(如int,String等),也可以是自己定义的类。 //Demo--1 //扩展基本类型 namespace TestExtensionMethods { // 必须建一个静态类,用来包含要添加的扩展方法 public static class Extensions { //要添加的扩展方法必须为一个静态方法 //此方法参数列表必须以this开始 第二个即为要扩展的数据类型,在这里就是要扩展string类型 //第三个就无所谓了,就是一对象名,名字随便,符合命名规则即可 //综合来讲,此方法就是要给string类型添加一个叫Test 阅读全文

WPF调用线程(二)复制文件并显示进度条(2)

2011-04-04 14:19 by 杨延成, 2343 阅读, 0 推荐, 收藏, 编辑
摘要:这篇文章,是上一篇的修改版,将进度条的更新也委托给了另外一个线程。由此也进行线程同步,通信等功能前台代码没有改变,参考:WPF调用线程(二)复制文件并显示进度条后台代码: 1 namespace WpfThreadTest 2 { 3 /// <summary> 4 /// ThreadCommunication.xaml 的交互逻辑 5 /// </summary> 6 public partial class ThreadCommunication : Window 7 { 8 Thread timeThread; 9 Thread copyThread; 10 T 阅读全文