Porque no añades un metodo a tu thread que te permita modificar el estado del thread para que el solito sepa que tiene que acabar? (devolver en el metodo run).<br><br><div class="gmail_quote">2009/5/18 Laura Santiago de la Cal <span dir="ltr"><<a href="mailto:lalii24@hotmail.com">lalii24@hotmail.com</a>></span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>
Hola, tambien había probado anteriormente con terminate() (se me olvidó ponerlo) y tampoco me termina la ejecución del hilo...<br>Y efectivamente no tengo un bucle de eventos en mi hilo, explico un poco porque quiero acabar con un hilo pasado X segundos.<br>
Resulta que estoy haciendo un "motor" que manejará hilos escritos por usuarios desconocidos para mi sistema, y lo que pretendo es que si este usuario quiere ejecutar su hio durante más tiempo que el que le otorgo no pueda y ese hilo sea desalojado...<br>
<br>¿Alguna otra idea? (Gracias Albert por contestar tan rápido)<br><br>> From: <a href="mailto:aacid@kde.org" target="_blank">aacid@kde.org</a><br>> To: <a href="mailto:kde-devel-es@kde.org" target="_blank">kde-devel-es@kde.org</a><br>
> Date: Sat, 16 May 2009 18:34:17 +0200<br>> Subject: Re: [Kde-devel-es] Matar hilos (QThread) con el tiempo<div><div></div><div class="h5"><br>> <br>> A Divendres, 15 de maig de 2009, Laura Santiago de la Cal va escriure:<br>
> > Hola, soy nueva en esta listasde distribución (me la recomendaron desde<br>> > otra) y tengo un problema que he mirado por todas partes y no le encuentro<br>> > solución, espero que alguno de ustedes me pueda orientar. Resulta que tengo<br>
> > un proceso que quiero que "guie" 2 hilos (QThread), para ello lo que quiero<br>> > es que llame al primero e independientemente de porque parte de la<br>> > ejecución se encuentre este hilo a los 5 segundos mate a este hilo y llame<br>
> > al segundo. <br>> <br>> No, no quieres hacer eso, matar un thread independientemente de la parte en la <br>> que se encuentre es una MUY MALA práctica de programación.<br>> <br>> > ¿Alguien sabe como hacerlo? Lo que yo he intentado es lo<br>
> > siguiente, pero no funciona:<br>> ><br>> > //Los 2 procesos que compiten<br>> > a = new clase() ; //clase herda de QThread<br>> > b = new clase() ;<br>> ><br>> > //Controlamos los hilos hasta que hay un ganador<br>
> > while(get_win()==-1)<br>> > {<br>> ><br>> > QTimer::singleShot(6, a, SLOT(quit()));<br>> > QTimer::singleShot(6, b, SLOT(quit()));<br>> > a->start();<br>
> > b->start();<br>> > update();<br>> > }<br>> <br>> No funciona porque <br>> <br>> void QThread::quit()<br>> Tells the thread's event loop to exit with return code 0 (success). Equivalent <br>
> to calling QThread::exit(0).<br>> This function does nothing if the thread does not have an event loop.<br>> <br>> Y más que probablemente tu thread no tenga un event loop.<br>> <br>> Si lo que quieres es matar el thread (ya te he dicho que no deberias hacerlo) <br>
> tienes <br>> <br>> void QThread::terminate()<br>> Terminates the execution of the thread. <br>> When the thread is terminated, all threads waiting for the thread to finish <br>> will be woken up.<br>> Warning: This function is dangerous and its use is discouraged. The thread can <br>
> be terminate at any point in its code path. Threads can be terminated while <br>> modifying data. There is no chance for the thread to cleanup after itself, <br>> unlock any held mutexes, etc. In short, use this function only if absolutely <br>
> necessary.<br>> <br>> Pues eso, que para 3 slots que tiene QThread no habias leido la documentación <br>> con suficientes ganas.<br>> <br>> Albert<br>> <br>> ><br>> > Muchas gracias por su tiempo<br>
> ><br>> ><br>> > _________________________________________________________________<br>> > Comparte, crea, disfruta… Descubre todo, en estos vídeos<br>> > <a href="http://www.windowslive.es" target="_blank">http://www.windowslive.es</a><br>
> <br>> <br>> _______________________________________________<br>> Kde-devel-es mailing list<br>> <a href="mailto:Kde-devel-es@kde.org" target="_blank">Kde-devel-es@kde.org</a><br>> <a href="https://mail.kde.org/mailman/listinfo/kde-devel-es" target="_blank">https://mail.kde.org/mailman/listinfo/kde-devel-es</a><br>
<br></div></div><div class="hm"><hr>Ahora, GRATIS Hotmail en tu móvil <a href="http://serviciosmoviles.es.msn.com/hotmail.aspx" target="_blank">¡Descúbrelo aquí!</a></div></div>
<br>_______________________________________________<br>
Kde-devel-es mailing list<br>
<a href="mailto:Kde-devel-es@kde.org">Kde-devel-es@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/kde-devel-es" target="_blank">https://mail.kde.org/mailman/listinfo/kde-devel-es</a><br>
<br></blockquote></div><br>