你的位置:首页 > ASP.net教程

[ASP.net教程]线程、任务和同步学习笔记(一)

1、创建线程的一种简单方法是定义一个委托,并异步调用它。

 1 using System; 2 using System.Threading; 3  4 delegate int WaitAWhileDelegate(int data, int ms); 5  6 class Program 7 { 8   static void Main(string[] args) 9   {10     WaitAWhileDelegate d = WaitAWhile;11     int data = 1;12     int ms = 3000;13     IAsyncResult a = d.BeginInvoke(data, ms, null, null);14     while (!a.IsCompleted)15     {16       Console.Write("*");17       Thread.Sleep(100);18     }19     int result = d.EndInvoke(a);20     Console.WriteLine("\nresult: {0}", result);21   }22 23   static int WaitAWhile(int data, int ms)24   {25     Console.WriteLine("WaitAWhile started.");26     Thread.Sleep(ms);27     Console.WriteLine("WaitAWhile completed.");28     return ++data;29   }30 }

增加代码中第17行的Sleep方法的参数值,输出的星号的个数会减少,反之会增加。

运行结果:


运行结果:


注意,第11行代码BeginInvoke方法中的第4个参数d不可以再为null,否则无法实现回调,即无法执行WaitAWhileComplete函数中第39行的打印输出功能。

运行结果:


运行结果: