1. 程式人生 > >多執行緒和非同步

多執行緒和非同步

1、簡單的一般執行緒

            Func<int, int, int> Add = (a, b) => a + b;

            Thread t = new Thread(() =>
            {
                Console.WriteLine(Add(3,4));
            });
            t.IsBackground = true;
            t.Start();

 

2、執行緒池執行執行緒

            Func<int
, int, int> Add = (a, b) => a + b; ThreadPool.QueueUserWorkItem(s => { Console.WriteLine(Add(4, 5)); });

 

3、非同步

(1)簡單一點,在主執行緒中呼叫非同步,然後在主執行緒中處理結果

            Func<int, int, int> Add = (a, b) => a + b;

            
var result = Add.BeginInvoke(3, 4, null, null); Console.WriteLine(Add.EndInvoke(result));

(2)在非同步中執行結束後呼叫函式,並非同步中執行處理結果。

 Func<int, int, int> Add = (a, b) => a + b;
 Add.BeginInvoke(3, 4, myCallBack, Add);
        private void myCallBack(IAsyncResult ar)
        {
            
var del = (Func<int, int, int>)ar.AsyncState; var res=del.EndInvoke(ar); Console.WriteLine(res); }