En particular¿Las matrices C# son seguras?
- crear una función para tomar una matriz y un índice como parámetros.
- Crea una matriz de elementos n.
- Crear un ciclo n count.
- Dentro del bucle en un nuevo hilo de asignar una nueva instancia del objeto a la matriz mediante el indizador se ha pasado.
Sé cómo manejar los hilos etc. Estoy interesado en saber si este es el hilo forma segura de hacer algo
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);
}
}
Esto no es para nada el objetivo de la pregunta, pero desaconsejaría usar 'Environment.ProcessorCount - 1' - esas personas de un solo núcleo estarían descontentas si no ... –
Hay personas con procesadores de núcleo? – Gary
@Gary hay máquinas virtuales con "un" procesador;) – IamIC