跟小D每日学口语
摘要: 看着下面这两句事件定义及激发忽然有点不明白了,public event EventHandler<ExternalDataEventArgs> Submit;Submit(null, args);貌似该事件定义时只传一个参数args, 但实际激发时要传两个参数, 咋回事捏!其实, 这是误解, 这个EventHandler<ExternalDataEventArgs>是个泛型版的预定义委托, 该委托实际的定义如下:publicdelegatevoidEventHandler<TEventArgs> (Object sender,TEventArgs e)whe 阅读全文
posted @ 2012-08-14 09:40 Danny Chen 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 开发语言:C#3.0IDE:Visual Studio 2008本系列教程主要包括如下内容:1. BeginInvoke和EndInvoke方法2. Thread类3.线程池4.线程同步基础5.死锁6.线程同步的7种方法7.如何在线程中访问GUI组件一、线程概述在操作系统中一个进程至少要包含一个线程,然后,在某些时候需要在同一个进程中同时执行多项任务,或是为了提供程序的性能,将要执行的任务分解成多个子任务执行。这就需要在同一个进程中开启多个线程。我们使用C#编写一个应用程序(控制台或桌面程序都可以),然后运行这个程序,并打开windows任务管理器,这时我们就会看到这个应用程序中所含有的线程数 阅读全文
posted @ 2012-08-14 09:37 Danny Chen 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 委托的Invoke方法用来进行同步调用。同步调用也可以叫阻塞调用,它将阻塞当前线程,然后执行调用,调用完毕后再继续向下进行。同步调用的例子:using System;using System.Threading;public delegate int AddHandler(int a, int b);public class Foo { static void Main() { Console.WriteLine("**********SyncInvokeTest**************"); AddHandler handler = new AddHandler(Ad 阅读全文
posted @ 2012-08-14 09:05 Danny Chen 阅读(242) 评论(0) 推荐(0) 编辑