中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

c# set怎樣確保線程安全

c#
小樊
81
2024-11-16 14:17:40
欄目: 編程語言

在C#中,要確保HashSet<T>的線程安全,可以使用ConcurrentDictionary<TKey, TValue>類來代替HashSet<T>ConcurrentDictionary<TKey, TValue>是線程安全的,可以在多個線程之間安全地存儲和訪問鍵值對。

以下是一個使用ConcurrentDictionary<TKey, TValue>的示例:

using System;
using System.Collections.Concurrent;
using System.Threading;

class Program
{
    static ConcurrentDictionary<int, string> concurrentSet = new ConcurrentDictionary<int, string>();

    static void Main(string[] args)
    {
        Thread t1 = new Thread(() => AddToSet(1, "one"));
        Thread t2 = new Thread(() => AddToSet(2, "two"));
        Thread t3 = new Thread(() => AddToSet(3, "three"));

        t1.Start();
        t2.Start();
        t3.Start();

        t1.Join();
        t2.Join();
        t3.Join();

        Console.WriteLine("ConcurrentSet contains: " + string.Join(", ", concurrentSet));
    }

    static void AddToSet(int key, string value)
    {
        concurrentSet.AddOrUpdate(key, value, (k, v) => value);
    }
}

在這個示例中,我們使用ConcurrentDictionary<int, string>AddOrUpdate方法來添加或更新集合中的元素。這個方法會在添加新元素或更新現有元素時執行指定的操作。在這個例子中,我們只是簡單地將新值設置為舊值。

通過使用ConcurrentDictionary<TKey, TValue>,我們可以確保在多個線程之間對集合的操作是線程安全的。

0
临西县| 双牌县| 花垣县| 顺义区| 河池市| 克什克腾旗| 丰镇市| 嘉祥县| 六盘水市| 施秉县| 万荣县| 孟津县| 武穴市| 微山县| 长宁区| 当雄县| 林周县| 辽中县| 固原市| 柳林县| 莱阳市| 洱源县| 依安县| 北安市| 虎林市| 胶南市| 合川市| 淅川县| 克山县| 盘锦市| 修水县| 苏州市| 宜春市| 武鸣县| 江永县| 池州市| 陆良县| 大庆市| 扶沟县| 鄂托克旗| 沙河市|