小编sri*_*awg的帖子

多线程写入数组

所以它在 C# 中,基本上我将在每个线程的数组中都有一个位置来存储一些数据。我需要锁定这个吗?例如:

int[] threads = new int[12];
Run Code Online (Sandbox Code Playgroud)

每个线程将访问数组中的特定位置,例如,线程 1 将更新线程 [0]、线程 2 线程 [1] 等中的值。

想法是让控制台打印存储在数组中的值。

好吧收到这么多评论。我想我会明确说明我在做什么,希望我能学到更多。所以基本上它的要点是:

主线程启动了12个独立的线程,每个线程调用主线程中的一个函数从数据库中获取一堆记录。对该方法的访问被锁定,但它返回大约 100 条记录供线程自行处理。

当线程正在处理记录时,它会发出几个 Web 请求并插入到数据库中。一旦线程完成处理它的一批记录,它会再次从主线程调用一个函数,该函数会启动一个新线程来代替正在完成的最后一个线程。

当线程进行处理时,我想在控制台中输出它们的进度。最初我锁定了每个控制台输出,因为如果同时调用相同的函数,则每个输出的光标位置都会到处都是。所以我想我会有一个数组来存储每个值的计数,然后有一个函数将它全部打印出来。尽管我开始怀疑这与我目前正在做的事情是否真的有什么不同。

c# multithreading thread-safety

5
推荐指数
1
解决办法
3937
查看次数

标签 统计

c# ×1

multithreading ×1

thread-safety ×1