c# 多线程更新list
时间: 2023-10-11 13:14:22 浏览: 124
在C#中,多线程更新List可以使用线程安全的集合类来实现。一种常见的方法是使用`ConcurrentBag<T>`,它是一个线程安全的无序集合。以下是使用多线程更新List的示例代码:
```csharp
using System;
using System.Collections.Concurrent;
using System.Threading;
using System.Threading.Tasks;
class Program
{
static ConcurrentBag<int> myList = new ConcurrentBag<int>();
static void Main()
{
// 使用多个线程进行数据更新
Task[] tasks = new Task[5];
for (int i = 0; i < tasks.Length; i++)
{
tasks[i] = Task.Run(UpdateList);
}
// 等待所有任务完成
Task.WaitAll(tasks);
// 打印更新后的List
foreach (var item in myList)
{
Console.WriteLine(item);
}
}
static void UpdateList()
{
// 模拟更新操作
Thread.Sleep(100);
// 添加一个随机数到List中
Random rnd = new Random();
int num = rnd.Next(100);
myList.Add(num);
}
}
```
在这个示例中,我们使用了`ConcurrentBag<int>`作为线程安全的集合类。我们创建了5个任务来同时更新List,每个任务都会添加一个随机数到List中。最后,我们使用`foreach`循环打印出更新后的List。
阅读全文