¿El bucle Thread.Sleep () sería malo para el rendimiento cuando se usa para pausar un hilo?

Se ha hablado (o se ha hablado) sobre si es bueno o malo usar elThread.Sleep() método. Por lo que entiendo, se debe utilizar principalmente para fines de depuración.

Ahora me pregunto: ¿es malo usarlo para mi propósito específico, es decir, hacer un bucle constante para poder pausar / reanudar el hilo? Hago esto porque quiero pausar un hilo que realiza operaciones de E / S y poder reanudarlo de una manera simple.

Las operaciones de E / S son básicamente solo escribir bloques de 4096 bytes en un archivo hasta que se hayan escrito todos los datos en él. Como el archivo puede ser grande y tomar mucho tiempo, quiero poder pausar la operación (en caso de que comience a consumir muchos recursos del sistema).

Mi código, versión VB.NET:

'Class level.
Private BytesWritten As Long = 0
Private Pause As Boolean = False

'Method (thread) level.
While BytesWritten < [target file size]
    ...write 4096 byte buffer to file...

    While Pause = True
        Thread.Sleep(250)
    End While

    ...do some more stuff...
End While

C # equivalente:

//Class level.
long bytesWritten = 0;
bool pause = false;

//Method (thread) level.
while(bytesWritten < [target file size]) {
    ...write 4096 byte buffer to file...

    while(pause == true) {
        Thread.Sleep(250);
    }

    ...do some more stuff...
}

He oído sobre ResetEvents y sé un poco sobre lo que hacen, pero nunca los he investigado mucho.

Respuestas a la pregunta(4)

Su respuesta a la pregunta