在上一篇C#多線程之線程同步篇2中,我們主要學(xué)習(xí)了AutoResetEvent構(gòu)造、ManualResetEventSlim構(gòu)造和CountdownEvent構(gòu)造,在這一篇中,我們將學(xué)習(xí)Barrier構(gòu)造、ReaderWriterLockSlim構(gòu)造和SpinWait構(gòu)造。

七、使用Barrier構(gòu)造

  在這一小節(jié)中,我們將學(xué)習(xí)一個(gè)比較有意思的同步構(gòu)造:Barrier。Barrier構(gòu)造可以幫助我們控制多個(gè)等待線程達(dá)到指定數(shù)量后,才發(fā)送通知信號(hào),然后所有等待線程才能繼續(xù)執(zhí)行,并且在每次等待線程達(dá)到指定數(shù)量后,還能執(zhí)行一個(gè)回調(diào)方法。具體步驟如下所示:

1、使用Visual Studio 2015創(chuàng)建一個(gè)新的控制臺(tái)應(yīng)用程序。

2、雙擊打開“Program.cs”文件,編寫代碼如下所示:

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

 1 using System; 2 using System.Threading; 3 using static System.Console; 4 using static System.Threading.Thread; 5  6 namespace Recipe07 7 { 8     class Program 9     {10         static Barrier barrier = new Barrier(2, b => WriteLine($"End of phase