
AI
在.NET 4.0中,没有提供ConcurrentList
csharpusing System;using System.Collections.Concurrent;class Program{ static void MAIn() { ConcurrentBag<string> concurrentList = new ConcurrentBag<string>(); // 在多个线程中同时添加元素 Parallel.For(0, 100, i => { concurrentList.Add("Item " + i); Console.WriteLine("Item " + i + " added"); }); // 在多个线程中同时移除元素 Parallel.For(0, 100, i => { string item; if (concurrentList.TryTake(out item)) { Console.WriteLine("Item " + item + " removed"); } }); Console.ReadLine(); }}在上面的代码中,我们使用Parallel.For方法在多个线程中同时添加和移除元素。ConcurrentBagcsharpusing System;using System.Collections.Generic;using System.Threading;class ConcurrentList<T>{ private readonly List<T> list = new List<T>(); private readonly ReaderWriterLockSlim lockSlim = new ReaderWriterLockSlim(); public void Add(T item) { lockSlim.EnterWriteLock(); try { list.Add(item); Console.WriteLine("Item " + item + " added"); } finally { lockSlim.ExitWriteLock(); } } public void Remove(T item) { lockSlim.EnterWriteLock(); try { list.Remove(item); Console.WriteLine("Item " + item + " removed"); } finally { lockSlim.ExitWriteLock(); } }}class Program{ static void MAIn() { ConcurrentList<string> concurrentList = new ConcurrentList<string>(); // 在多个线程中同时添加元素 Parallel.For(0, 100, i => { concurrentList.Add("Item " + i); }); // 在多个线程中同时移除元素 Parallel.For(0, 100, i => { concurrentList.Remove("Item " + i); }); Console.ReadLine(); }}在上面的代码中,我们定义了一个名为ConcurrentListCopyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号