1.开辟一个新线程去运行你的方法,主线程包括界面就不会死掉了,有效的避免了卡顿,卡死现象
2.能异步的,最好不多线程;异步是创建了一个新的线程,多线程是在原有的线程中创建出一个虚拟线程,
1 //3.实例化委托对象 2 GetDeleGate gdg=new GetDeleGate(GetSum); 3 //1.创建委托 4 public delegate int GetDeleGate(int num1); 5 //2.创建委托方法 6 public static int GetSum(int num1) 7 { 8 return num1*num1; 9 } 10 private void button1_Click(object sender, EventArgs e) 11 { 12 for (int i=0;i<10;i++) 13 { 14 Thread.Sleep(500); 15 gdg.BeginInvoke(i, PrintCallBack, null); 16 Thread.Sleep(1000); 17 Console.WriteLine("同步"+GetSum(i)); 18 } 19 20 } 21 //异步完成之后的回调方法 22 public void PrintCallBack(IAsyncResult iar) 23 { 24 //接收异步返回的结果 25 var info=gdg.EndInvoke(iar); 26 Console.WriteLine("异步"+info); 27 }