Estoy trabajando en una aplicación de consola que se programará y ejecutará a intervalos establecidos, por ejemplo, cada 30 minutos. Su único propósito es consultar un servicio web para actualizar un lote de filas de bases de datos.Uso aceptable de Thread.Sleep()
La API del servicio web recomienda llamar una vez cada 30 segundos y el tiempo de espera después de un intervalo establecido. El siguiente pseudocódigo se da como un ejemplo:
listId := updateList(<list of terms>)
LOOP
WHILE NOT isUpdatingComplete(listId)
END LOOP
statuses := getStatuses(“LIST_ID = {listId}”)
me han codificado esta aproximadamente en C# como:
int callCount = 0;
while(callCount < 5 && !client.isUpdateComplete(listId, out messages))
{
listId = client.updateList(options, terms, out messages);
callCount++;
Thread.Sleep(30000);
}
// Get resulting status...
¿Está bien en esta situación para utilizar Thread.Sleep()? Soy consciente de que, en general, no es una buena práctica, pero al leer las razones para no usarlo, parece un uso aceptable.
Gracias.
Tu uso de 'Thread.Sleep' es perfectamente aceptable –
La aplicación de la consola se programará ? ¿Por qué no programarlo solo cada 30 minutos si ese es el caso? La mejor solución sería un servicio de Windows que utiliza un temporizador para llamar al método. – Ray
¿Por qué no? ¿Cuáles son las razones para no usarlo? –