tpl 小記

並行無序執行若干個傳入不同標識的任務
 
            Parallel.For(1, 10, x => { Thread.Sleep(1000); });

 
並行無序執行若干個任務
 
            Parallel.Invoke(new Action[] {
                () => { Thread.Sleep(1000); } ,
                () => { Thread.Sleep(2000); } ,
                () => { Thread.Sleep(3000); } ,
            });
 
設立同步條
 
            Barrier wait = new Barrier(3);
            Parallel.Invoke(new Action[] {
                () => { Thread.Sleep(1000); wait.SignalAndWait();Thread.Sleep(1000);} ,
                () => { Thread.Sleep(2000); wait.SignalAndWait();Thread.Sleep(2000);} ,
                () => { Thread.Sleep(3000); wait.SignalAndWait();Thread.Sleep(3000);} ,
            });
 
 
任務並聯
 
                Task.Factory.StartNew(() =>
                {
                    Task.Factory.StartNew(() => { Console.WriteLine(1); });
                    Task.Factory.StartNew(() => { Console.WriteLine(2); });
                    Task.Factory.StartNew(() => { Console.WriteLine(3); });
                });
 
任務串聯
 
                var t1 = new Task(() => { Console.WriteLine(1); });
                var t2 = t1.ContinueWith(x => { Console.WriteLine(2); });
                var t3 = t2.ContinueWith(x => { Console.WriteLine(3); });
                t1.Start();
 
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章