[Kde-devel-es] Matar hilos (QThread) pasado un tiempo sin hacer sleep

Aleix Pol aleixpol at kde.org
Wed Aug 19 16:30:07 CEST 2009


2009/8/19 Laura Santiago de la Cal <lalii24 at hotmail.com>

>  Estos hilos se ejecutan en un entorno controlado, por tanto no pueden
> hacer nada fuera del sistema, estos hilos lo único que pueden hacer es
> modificar las variables del programa en el que se están ejecutando.Además
> yo lo que digo no es que vaya a dejarlo en el estado anterior sino en el
> estado que yo deseo...
> Voy a explicar mi caso con más detenimiento a ver si así me explico mejor
> Estoy creando un programa que se encargará de enfrentar a otros dos
> programas escritos por usuarios que no conozco, en este caso concreto cada
> usuario escribe un jugador de tennis y tiene que intentar ganar el partido,
> para moverse, golpear y tal les facilito una librería de funciones.
> El programa que yo controlo va cediendo el turno a cada uno de los otros 2
> programas por turnos (estos se ejecutan en forma de hilo) y lo único que
> busco es que si uno de los 2 usuarios sin querer (o adrede) se mete en un
> bucle infinito desalojar ese hilo de la cpu y darlo como si no hubiera hecho
> nada (no quiere avanzar ni golpear ni nada) y preguntarle al otro que quiere
> hacer...
> No sé si me he explicado, espero que sí... a ver si alguien me puede ayudar
> a eso, a desalojar un hilo de la cpu si ha excedido un tiempo (sé que puedo
> poner wait(x) y luego matarlo, pero no quiero bloquear la cpu)
> A ver si hay suerte y alguien me puede ayudar...
>

Puedes usar QTimer::singleShot().
El tema es que si matas un thread puedes dejar el programa entero en un
estado descontrolado.

Saludos,
Aleix


>
> > Date: Wed, 19 Aug 2009 13:20:31 +0200
> > From: ereslibre at kde.org
> > To: kde-devel-es at kde.org
> > Subject: Re: [Kde-devel-es] Matar hilos (QThread) pasado un tiempo sin
> hacer sleep
> >
> > 2009/8/19 Laura Santiago de la Cal <lalii24 at hotmail.com>:
> > > La función terminate la tengo habilitada ya que si la pongo fuera del
> slot
> > > me termina el hilo perfectamente, asi que ese no puede ser el problema
> > > Respecto a que matar hilos así derepente es mala práctica normalmente
> ya lo
> > > sé, pero en este caso es lo que deseo hacer ya que una vez que yo los
> mate
> > > me preocuparé de dejar el sistema en el estado que yo deseo, asi que
> por eso
> > > no hay problema.
> >
> > Creo que esto último es imposible. Si no sabes qué código ejecuta el
> > jugador (según lo que has dicho en otro mensaje) es sencillamente
> > imposible que dejes el sistema en el mismo estado en el que se
> > encontraba, básicamente porque no sabes qué hizo el código del
> > jugador.
> >
> > Imagínate que por alguna razón desconocida, ha abierto un fichero y
> > está escribiendo sobre él en el momento en el que matas el hilo. Es
> > imposible que puedas dejar el sistema en el mismo estado en el que se
> > encontraba.
> >
> >
> > Un saludo,
> > Rafael Fernández López.
> > _______________________________________________
> > Kde-devel-es mailing list
> > Kde-devel-es at kde.org
> > https://mail.kde.org/mailman/listinfo/kde-devel-es
>
> ------------------------------
> ¿Quieres los nuevos emoticonos en 3D? ¡Descárgatelos gratis!
> <http://www.vivelive.com/emoticonos3d/index2.html>
>
> _______________________________________________
> Kde-devel-es mailing list
> Kde-devel-es at kde.org
> https://mail.kde.org/mailman/listinfo/kde-devel-es
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/kde-devel-es/attachments/20090819/dc981d4f/attachment.htm 


More information about the Kde-devel-es mailing list