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

C#のスレッドセーフコレクション


.NET Framework 4では、System.Collections.Concurrent名前空間が導入されました。名前空間には多数のコレクションクラスがあります。これらのクラスは、スレッドセーフでスケーラブルです。複数のスレッドで、これらのコレクションにアイテムを安全に追加または削除できます。

次の同時収集タイプは、軽量の同期メカニズムを使用します:SpinLock、SpinWaitなど。これらは.NETFramework4の新機能です。

C#で同時収集を見てみましょう-

タイプと説明
Sr.No。
1

BlockingCollection

あらゆるタイプの境界およびブロック機能。

2

ConcurrentDictionary

キーと値のペアの辞書のスレッドセーフな実装。

3

ConcurrentQueue

FIFO(先入れ先出し)キューのスレッドセーフな実装。

4

ConcurrentStack

LIFO(後入れ先出し)スタックのスレッドセーフな実装。

5

ConcurrentBag

順序付けられていない要素のコレクションのスレッドセーフな実装。

6

IProducerConsumerCollection

BlockingCollectionで使用するために型が実装する必要のあるインターフェース


  1. SwingはJavaでスレッドセーフですか?

    いいえ、 Java Swing コンポーネントはJavaではスレッドセーフではありません。 Swingコンポーネントがスレッドセーフではない理由 Java Swingがスレッドセーフではない主な理由の1つは、そのコンポーネントを拡張するタスクを簡素化することです。 Java Swingのもう1つの理由は、ロックの取得と解放、および状態の復元に伴うオーバーヘッドのため、スレッドセーフではありません。 。 一部のJavaSwingコンポーネントメソッドは、 repaint()、revalidate()などのマルチスレッドアクセスをサポートします。 、および invalidate()メソッド

  2. MicrosoftEdgeでコレクションを使用する方法

    Microsoft Edgeは、最近一貫して高速で強力なWebブラウザとしての地位を証明しています。 Edgeには、他のブラウザよりも優れている多くの革新的な機能が満載されており、主要なブラウザになるための確固たる競争相手になります。 ウェブサイトで何かが好きだったことは何回ありますが、ブックマークやスクリーンショットとして保存するのは面倒なことのように思えました。 Microsoft Edgeのコレクションは、Webを閲覧しながらアイデアを整理するのに役立ちます。これは、お気に入りのアイテムをオンラインで簡単に追跡できる便利なツールです。 MicrosoftEdgeコレクションについて知