委托/事件/线程传参简单理解

简介:

写了很多代码,但几乎都没写过委托/事件/线程传参方面应用的代码
因此自己总很容易理解后又遗忘
今天又重温了一下
因此以最简单的方式的代码方式写下来帮助理解

1.线程传参[简单几行代码]
 

 1  static  void Main( string[] args)
 2         {
 3              if (ThreadPool.QueueUserWorkItem( new WaitCallback(Program.WritePara),  " 这是传进去的参数 "))
 4             {
 5                 Console.WriteLine( " ok: ");
 6                 Console.Read();
 7             }
 8 
 9         }
10     protected  static  void WritePara( object para)
11         {
12             Console.WriteLine( " hello: "+para);
13         }
14 
15 

2.委托/事件

 1 None.gif public  class Program
 2 ExpandedBlockStart.gif     {
 3InBlock.gif       delegate void CallFunction(object para);//定义委托[和定义方法一个样,简单理解为static 换成了delegate]
 4InBlock.gif       private static event CallFunction CallEvenHandle;//定义事件[简单理解,有事件必有委托]
 5InBlock.gif        static void Main(string[] args)
 6ExpandedSubBlockStart.gif        {
 7InBlock.gif            //调用委托,之前定义像方法,这里new了一个实例,和js的new一个function 差不多
 8InBlock.gif           CallFunction cf = new CallFunction(WritePara);
 9InBlock.gif            cf.Invoke("goodmorning");
10InBlock.gif
11InBlock.gif
12InBlock.gif         //调用事件,打上"+="后按"Tab"键就出来了,简单使用 
13InBlock.gif         CallEvenHandle += new CallFunction(WritePara);
14InBlock.gif            CallEvenHandle("CYQ");
15InBlock.gif
16InBlock.gif            //Console.Read();
17ExpandedSubBlockEnd.gif        }

18InBlock.gif
19InBlock.gif        protected static void WritePara(object para)
20ExpandedSubBlockStart.gif        {
21InBlock.gif            Console.WriteLine("hello:"+para);
22ExpandedSubBlockEnd.gif        }

23ExpandedBlockEnd.gif    }

24 None.gif
相关文章
|
12月前
|
数据采集 C#
委托与线程在C#编程中的应用及选择
委托是一种表示对具有特定参数列表和返回类型的方法的引用的类型。可以使用委托将方法作为参数传递给其他方法,或者异步地调用方法。 线程是一个执行单元,它可以与进程中的其他线程并发运行。可以使用线程来同时执行多个任务,或者并行化计算密集型的工作。 委托和线程之间的区别在于,委托是一种引用方法的方式,而线程是一种执行方法的方式。可以使用委托在不同的线程上调用方法,要么使用委托的 BeginInvoke 和 EndInvoke 方法,要么使用 ThreadPool 或 Task 类。
C#委托/Func()中 GetlnvocationList()方法的使用 | 接受委托多个返回值
C#委托/Func()中 GetlnvocationList()方法的使用 | 接受委托多个返回值
252 0
C#委托/Func()中 GetlnvocationList()方法的使用 | 接受委托多个返回值
|
开发框架 安全 .NET
委托表示回调
委托表示回调
93 0
C#委托及线程操作
C#委托及线程操作
118 0
C#委托及线程操作