public static async void ReasignarEIntentarEnviarTarea(Roles[] PrioridadRoles, Tarea Tarea) { await Task.Run(() => { Usuario usuarioAsignar; bool tareaEnviadaONull = false; do { usuarioAsignar = Get_UsuarioConectadoConMenosTareas_PorPrioridadRoles(PrioridadRoles); if (usuarioAsignar != null) { Tarea.Reasignar(usuarioAsignar.NombreUsuario); tareaEnviadaONull = null != new Comando_EnviarTarea(Tarea).Enviar(usuarioAsignar.IP, true); if (!tareaEnviadaONull) { usuarioAsignar.Conectado = false; } } else { Tarea.Reasignar(null); tareaEnviadaONull = true; } }while(!tareaEnviadaONull); }); }