He escrito una aplicación .NET winforms que utiliza un subproceso secundario para hacer un procesamiento pesado, que comunica su progreso al subproceso de la interfaz de usuario. Todo funciona correctamente, el formulario muestra el progreso, y también he creado un botón de cancelar para interrumpir el hilo de procesamiento. Sin embargo, cuando el proceso consume mucho tiempo, la aplicación y toda mi computadora se ralentizan. Lleva mucho tiempo arrastrar las ventanas, e incluso hay un retraso significativo al intentar escribir letras en el bloc de notas.Cambiar la prioridad de subprocesos para que mi programa y computadora sean más receptivos
Supongo que necesito reducir la prioridad del subproceso de procesamiento y/o aumentar la prioridad del subproceso de UI. ¿Es esto correcto? En este momento ambos hilos son prioridad normal.
¿Es tan fácil como el siguiente? ¿O hay algo más que debería hacer?
Thread.CurrentThread.Priority = ThreadPriority.AboveNormal;
¿Cómo debo modificar las prioridades? ¿Debo reducir la prioridad del procesamiento, o aumentar la prioridad de la interfaz de usuario, o ambas cosas? ¿Y a qué escenario? Por encima de Normal, o más alto?
Eric, ¿qué tipo de procesador hay en su máquina de desarrollo? ¿Con qué frecuencia el hilo de trabajo se comunica a la UI? – overslacked