No puede garantizar en .Net que dos Thread
s se ejecuten en dos núcleos separados. De hecho, tampoco puede garantizar que Thread
se ejecutará en un solo núcleo (!) .
Esto se debe a que los subprocesos administrados no son lo mismo que los subprocesos del sistema operativo : un solo subproceso administrado puede usar múltiples subprocesos del sistema operativo para admitirlo. En C #, solo trata directamente con Thread
s administrados (al menos, sin recurrir a p / invoke para llamar a las funciones de subprocesos de WinAPI, lo que nunca debe hacer) .
Sin embargo, los planificadores de subprocesos .Net y Windows son muy buenos en lo que hacen: no ejecutarían dos subprocesos en un solo núcleo, mientras que un segundo núcleo está completamente inactivo. Por lo tanto, en general, no necesita preocuparse por eso.
t1
yt2
se ejecuta en diferentes momentos en un orden arbitrario (por ejemplo, es posible quet2
comience antest1
en algunos modelos).