C〓Blocking Collectionの簡単な使い方

1132 ワード

この章はC〓Blocking Collectionパラレルコンテナの簡単な使い方、
1、BlockingCollection:古典的なブロッキング行列のデータ構造と類似して、複数のタスクの追加とデータの削除に適用でき、ブロッキングと限界能力を提供する.
2、並行集合の名前空間:System.coollections.concurrent
3、Blocking Collection:境界とブロックをサポートする容器(スレッド安全集合)の常用関数は以下の通りです.
    Add:容器に元素を挿入する
    TryTake:容器から元素を取り出して削除します.
    TryPeek:容器から元素を取り出すが、削除しない.
    Coplete Adding:容器に教えて、元素を追加して完成します.このまま追加したいと異常が発生します.
    Is Completteed:消費スレッドについては、生産スレッドはまだ実行中であり、タスクはまだ完了していません.
4、簡単コードルーチン:一つのタスクは容器にデータを追加し、もう一つのタスクはデータを容器から取り出して処理する. 
System.Collections.Concurrent.BlockingCollection m_BlockData = new System.Collections.Concurrent.BlockingCollection();

//    :
private void AddToList()
{
    string tempStr = "aaa";
    m_BlockData.Add(tempStr);
}


//    
private void RaiseDataEvent()
{
    while (true)
    {
        if (m_BlockData != null)
        {
            var temp = m_BlockData.Take();
            
        }

        if (!m_Receiver.IsOpen)
        {
            m_BlockData.Dispose();
            m_BlockData = null;
            break;
        }
    }
}