В частностиЯвляются ли массивы C# потоками безопасными?
- Создайте функцию, чтобы взять массив и индекс в качестве параметров.
- Создайте массив элементов n.
- Создайте цикл n count.
- Внутри цикла на новом потоке назначить новый экземпляр объекта в массив, используя индексатор, переданный в.
Я знаю, как управлять темы и т.д. Я заинтересован в курсе, если это нить безопасный способ сделать что-то.
class Program
{
// bogus object
class SomeObject
{
private int value1;
private int value2;
public SomeObject(int value1, int value2)
{
this.value1 = value1;
this.value2 = value2;
}
}
static void Main(string[] args)
{
var s = new SomeObject[10];
var threads = Environment.ProcessorCount - 1;
var stp = new SmartThreadPool(1000, threads, threads);
for (var i = 0; i < 10; i++)
{
stp.QueueWorkItem(CreateElement, s, i);
}
}
static void CreateElement(SomeObject[] s, int index)
{
s[index] = new SomeObject(index, 2);
}
}
Это совершенно не касается вопроса, но я бы посоветовал использовать «Environment.ProcessorCount - 1' - эти бедные одноядерные люди будут совершенно несчастны в противном случае ... –
Есть люди, основных процессоров? – Gary
@Gary есть виртуальные машины с «одним» процессором;) – IamIC