C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のQueue.Synchronized()メソッド


C#のQueue.Synchronized()メソッドは、元のキューをラップし、スレッドセーフな新しいキューを返すために使用されます。

構文

構文は次のとおりです-

public static System.Collections.Queue Synchronized (System.Collections.Queue queue);

上記のパラメータキューは、同期するキューです。

例を見てみましょう-

using System;
using System.Collections;
public class Demo {
   public static void Main(){
      Queue queue = new Queue();
      queue.Enqueue("AB");
      queue.Enqueue("BC");
      queue.Enqueue("CD");
      queue.Enqueue("DE");
      queue.Enqueue("EF");
      queue.Enqueue("FG");
      queue.Enqueue("GH");
      queue.Enqueue("HI");
      Console.WriteLine("Queue...");
      IEnumerator demoEnum = queue.GetEnumerator();
      while (demoEnum.MoveNext()){
         Console.WriteLine(demoEnum.Current);
      }
      Console.WriteLine("Is Queue synchronized? = "+queue.IsSynchronized);
      Queue queue2 = Queue.Synchronized(queue);
      Console.WriteLine("Is Queue synchronized now? = "+queue2.IsSynchronized);
   }
}

出力

これにより、次の出力が生成されます-

Queue...
AB
BC
CD
DE
EF
FG
GH
HI
Is Queue synchronized? = False
Is Queue synchronized now? = True

別の例を見てみましょう-

using System;
using System.Collections;
public class Demo {
   public static void Main(){
      Queue queue = new Queue();
      queue.Enqueue(100);
      queue.Enqueue(200);
      queue.Enqueue(300);
      Console.WriteLine("Is Queue synchronized? = "+queue.IsSynchronized);
      Queue queue2 = Queue.Synchronized(queue);
      Console.WriteLine("Is Queue synchronized now? = "+queue2.IsSynchronized);
      Console.Write("Count of elements = ");
      Console.WriteLine(queue.Count);
      Console.WriteLine("Queue...");
      foreach(int i in queue){
         Console.WriteLine(i);
      }
      Console.WriteLine("Does the queue has element 500? = "+queue.Contains(500));
      int[] intArr = new int[5];
      intArr[0] = 1;
      intArr[1] = 2;
      intArr[2] = 3;
      intArr[3] = 4;
      queue.CopyTo(intArr, 1);
      Console.WriteLine("\nQueue (Updated)");
      foreach(int i in queue){
         Console.WriteLine(i);
      }
      Console.WriteLine("\nArray (Updated)");
      foreach(int i in intArr){
         Console.WriteLine(i);
      }
   }
}

出力

これにより、次の出力が生成されます-

Is Queue synchronized? = False
Is Queue synchronized now? = True
Count of elements = 3
Queue...
100
200
300
Does the queue has element 500? = False
Queue (Updated)
100
200
300
Array (Updated)
1
100
200
300
0

  1. C#の集計メソッド

    C#でAggregateメソッドを使用して、Sum、Min、Max、Averageなどの数学演算を実行します。 Aggregateメソッドを使用して配列要素を乗算する例を見てみましょう。 これが私たちの配列です- int[] arr = { 10, 15, 20 }; ここで、Aggregate()メソッドを使用します- arr.Aggregate((x, y) => x * y); これが完全なコードです- 例 using System; using System.Linq; using System.IO; public class Demo {    p

  2. C#のTakeWhileメソッド()

    TakeWhile()メソッドを使用すると、述語に基づいて条件を設定することでメソッドを取得できます。 まず、配列を宣言して初期化します- int[] arr = { 25, 40, 65, 70}; ここで、TakeWhile()メソッドと述語を使用して、30未満のすべての要素を取得します。 var val = arr.TakeWhile(ele => ele < 30); 同じ例を見てみましょう。ここでは、述語-を使用して30未満の値を表示しています。 例 using System; using System.Linq; using System.IO; public c