欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C#教程

當前位置:主頁 > 軟件編程 > C#教程 >

C#信號量用法簡單示例

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C#教程|點擊: 次

本文實例講述了C#信號量用法。分享給大家供大家參考,具體如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
/*
 * 標題:如何使用信號量的示例代碼
 * Author:kagula
 * Date:2015-6-16
 * Environment:VS2010SP1, .NET Framework 4 client profile, C#.
 * Note:[1]“信號量”可以看成是“授權(證)池”。
 *     一個授權(證)池內(nèi)有零個或多個授權(證)。
 *   [2]下面的示例sem of Semaphore相當于最多只能有一個授權(證)的授權池。
 *   [3]每調用一次sem.Release添加一個授權(證)。
 *     連接調用多次sem.Release導致超出授權池所能容納的授權(證)數(shù)量,會拋出異常。
 *   [4]每調用一次sem.WaitOne就使用一個授權(證)。
 * */
namespace kagula
{
  class mySemaphore
  {
    //第一個參數(shù),代表當前授權次數(shù)。
    //      0表示沒有授權(證)。
    //第二個參數(shù),代表Semaphore實例最多能容納幾個授權證。
    //      1表示最大授權次數(shù)為1次。
    //      超出允許的授權次數(shù),比如說sem.Release連續(xù)調用了兩次,會拋出異常。
    public static Semaphore sem = new Semaphore(0, 1);
    public static void Main()
    {
      //添加一次授權。
      //釋放一個sem.WaitOne()的阻塞。
      sem.Release();
      myThread mythrd1 = new myThread("Thrd #1");
      myThread mythrd2 = new myThread("Thrd #2");
      myThread mythrd3 = new myThread("Thrd #3");
      myThread mythrd4 = new myThread("Thrd #4");
      mythrd1.thrd.Join();
      mythrd2.thrd.Join();
      mythrd3.thrd.Join();
      mythrd4.thrd.Join();
      //input any key to continue...
      Console.ReadKey();
    }//end main function
  }//end main class
  class myThread
  {
    public Thread thrd;
    public myThread(string name)
    {
      thrd = new Thread(this.run);
      thrd.Name = name;
      thrd.Start();
    }
    void run()
    {
      Console.WriteLine(thrd.Name + "正在等待一個許可(證)……");
      //如果不加參數(shù)會導致無限等待。
      if (mySemaphore.sem.WaitOne(1000))
      {
        Console.WriteLine(thrd.Name + "申請到許可(證)……");
        Thread.Sleep(500);
        //雖然下面添加了許可,但是,其它線程可能沒拿到許可,超時退出了。
        Console.WriteLine(thrd.Name + "添加一個許可(證)……");
        mySemaphore.sem.Release();
      }
      else
      {
        Console.WriteLine(thrd.Name + " 超時(等了一段時間還是沒拿到許可(證))退出……");
      }
    }
  }//end class
}//end namespace

更多關于C#相關內(nèi)容感興趣的讀者可查看本站專題:《C#程序設計之線程使用技巧總結》、《C#操作Excel技巧總結》、《C#中XML文件操作技巧匯總》、《C#常見控件用法教程》、《WinForm控件用法總結》、《C#數(shù)據(jù)結構與算法教程》、《C#數(shù)組操作技巧總結》及《C#面向對象程序設計入門教程》

希望本文所述對大家C#程序設計有所幫助。

上一篇:WinForm單例窗體用法實例

欄    目:C#教程

下一篇:WPF的ListView控件自定義布局用法實例

本文標題:C#信號量用法簡單示例

本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/6378.html

網(wǎng)頁制作CMS教程網(wǎng)絡編程軟件編程腳本語言數(shù)據(jù)庫服務器

如果侵犯了您的權利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導致的法律后果,本站均不負任何責任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權所有