В частности,
- Создайте функцию для выбора массива и индекса в качестве параметров.
- Создайте массив элементов n.
- Создайте цикл count n.
- Внутри цикла в новом потоке назначьте новый экземпляр объекта массиву с помощью переданного индексатора.
Я знаю, как управлять потоками и т.д. Мне интересно знать, является ли это потокобезопасным способом сделать что-то.
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);
}
}