摘要:
一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是原来简单的html静态网站所能比拟的。 大型网站,比如门户网站。在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能. 阅读全文
摘要:
http://www.cnblogs.com/yxmx/articles/1687216.htmlhttp://www.cnblogs.com/zengxiangzhan/archive/2010/04/23/1718521.html 阅读全文
摘要:
任务也可以构成一个层次结构。一个任务启动一个新任务时,就启动了一个层次结构。下面的代码段在父任务内部新建一个任务。创建子任务的代码与创建父任务的代码相同,唯一的区别是这个任务从另一个任务内部创建: 1: static void Main(string[] args) 2: { 3: Task parentTask = new Task(ParentTask); 4: parentTask.Start(); 5: 6: Console.Read(); 7: } 8: 9: static void ParentTask() 10: ... 阅读全文
摘要:
通过任务,可以指定在任务完成后,应开始运行另一个特定任务。任务处理程序或者不带参数或者带一个对象参数,而连续处理程序有一个Task类型的参数。下面先定义两个任务: 1: static void FirstTaskMethod() 2: { 3: Console.WriteLine(String.Format("Task {0} is doing something", Task.CurrentId)); 4: Thread.Sleep(200); 5: } 6: 7: static void SecondTaskMethod(Task task) ... 阅读全文
摘要:
.Net Framework 4.0新增了一个System.Threading.Tasks命名空间,它包含的类提供了任务的相关操作。使用任务不仅可以获得一个抽象层,还能对底层线程进行很多统一的控制操作。这里先介绍一下Task的简单使用。最基本的是知道怎么启动一个Task。1、Task类构造函数使用Task类的构造函数。实例化Task对象时,任务不会立即运行,而是指定Created状态。接着调用Task类的Start()方法来启动任务。使用Task类时,除了调用Start()方法,还可以调用RunSynchronously()方法。这样,任务也会启动,但是同时调用。默认情况下,任务是异步运行的。 阅读全文
摘要:
在需要创建的线程很多,且都是比较小的线程的情况下,可以使用线程池(ThreadPool类)。ThreadPool是一个静态方法,提供了对一个线程集合的操作,它会在线程数不足时增加线程,空闲线程数过多时释放资源。1、ThreadPool简单应用调用ThreadPool.QueueUserWorkItem()方法,传递一个WaitCallBack委托类型的方法,并把这个方分配给线程池中的线程。线程池是自动运行的,如果线程池还没有运行,就会创建一个线程池,并启动第一个线程。如果线程池己经在运行,且有一个空闲线程来完成该任务,就把该作业传递给这个线程。下面这个方法是一个符合WaitCallBack委托 阅读全文
摘要:
.Net Framework提供了Thread类,它可以创建和控制线程。Thread的构造方法可接受一个无参无返回值的委托类型参数,或一个有object类型参数无返回值的委托类型参数。1、简单的Thread类实例先创建两个方法,分别用于两个线程处理: 1: static void ThreadMethod1() 2: { 3: for (int j = 0; j < 20; j++) 4: { 5: Console.WriteLine("Thread 1 is running"); 6: Thread.Sleep(500)... 阅读全文
摘要:
异步的实现即多线程,一种简单的方式就是创建一个委托,然后异步调用它。 .Net Framework已经为我们提供了委托的异步调用方法。下面介绍三种使用委托实现异步的方法。1、投票(IsCompleted属性)首先定义一个委托: 1: public delegate string MyDelegate(int ms);Delegate类提供了BeginInvoke()方法,这个方法返回一个IAsyncResult接口,这个接口包含了该委托的相关信息,并且可以通过它的IsCompleted属性来判断该委托是否执行完成。下面是将要异步调用的方法: 1: static string Deleg... 阅读全文
摘要:
委托的Invoke方法用来进行同步调用。同步调用也可以叫阻塞调用,它将阻塞当前线程,然后执行调用,调用完毕后再继续向下进行。 同步调用的例子:namespace ConsoleApplication1{ public class MyClass { public static void Main(string[] args) { Invoke.SyncInvoke(); } } public delegate int AddHandler(int a, int b); public class I... 阅读全文
摘要:
Entity Framework 4.1 中,生成外键的方式有以下几种:1-指定导航属性,会自动生成外键,命名规则为:“表名_主键名”2-默认情况下与导航属性的主键名称相同的字段会自动被标记为外键,3-通过[ForeignKey]标记指定实体类的属性为外键,4-方式2的升级版,与导航属性的主键名称相同的字段会自动被标记为外键,然后指定字段对应的数据库中的列名方式3、4可指定生成的数据库中的列名。View Code public class User { public int UserID { get; set; } public string Name... 阅读全文