<HTML>
<HEAD>
<TITLE>Re: [PyQt] QThread, suggestions.</TITLE>
</HEAD>
<BODY>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>I&#8217;m not sure why you would want to do this. &nbsp;You could just set up a QTimer to poll the Process to see if it was completed. &nbsp;The Qtimer func could then emit a finished signal. &nbsp;You could poll every second or so. &nbsp;You could even poll for percent complete if you have that information.<BR>
<BR>
Much easier than using a thread.<BR>
<BR>
Brian<BR>
<BR>
<BR>
On 1/29/09 10:34 AM, &quot;Matt Smith&quot; &lt;<a href="melkor@orangepalantir.org">melkor@orangepalantir.org</a>&gt; wrote:<BR>
<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>It looks like I could just replace the QThread with a<BR>
multiprocess.Process except for the fact the QThread is a QObject which<BR>
uses signals and slots.<BR>
<BR>
If I want to use the same techniques I would have to start a Process in<BR>
a QThread to get similar behavior; a signal when finished. &nbsp;I suppose<BR>
the performance would be better if approached correctly.<BR>
<BR>
<BR>
thanks<BR>
mbs<BR>
<BR>
On Thu, 2009-01-29 at 04:45 -0800, Brian Kelley wrote:<BR>
&gt; If you happen to be using python 2.6, multiprocessing is your friend.<BR>
&gt;<BR>
&gt; <a href="http://docs.python.org/dev/library/multiprocessing.html">http://docs.python.org/dev/library/multiprocessing.html</a><BR>
&gt;<BR>
&gt; It is very easy to use and because it runs in a separate process,<BR>
&gt; there is no global interpreter lock. &nbsp;Way, way, way better than<BR>
&gt; threading for a lot of cases. &nbsp;If it crashes, the main program doesn&#8217;t<BR>
&gt; go down.<BR>
&gt;<BR>
&gt; Brian<BR>
&gt;<BR>
&gt;<BR>
&gt; On 1/27/09 2:01 PM, &quot;Matt Smith&quot; &lt;<a href="melkor@orangepalantir.org">melkor@orangepalantir.org</a>&gt; wrote:<BR>
&gt;<BR>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;In java they have the &quot;SwingWorker&quot; class and I thought of a<BR>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;way to<BR>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;implement something similar in python. &nbsp;Here is the code:<BR>
&gt;<BR>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://paste.pocoo.org/show/101578/">http://paste.pocoo.org/show/101578/</a><BR>
&gt;<BR>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I use this for starting long running processes. &nbsp;Here is an<BR>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;example of<BR>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;how I have used it.<BR>
&gt;<BR>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://orangepalantir.org/files/threadworker.py">http://orangepalantir.org/files/threadworker.py</a><BR>
&gt;<BR>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I was curious for some input, It seems threads are often<BR>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;abused and I<BR>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't want to be doing too much abusing.<BR>
&gt;<BR>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mbs<BR>
&gt;<BR>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_______________________________________________<BR>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PyQt mailing list &nbsp;&nbsp;&nbsp;<a href="PyQt@riverbankcomputing.com">PyQt@riverbankcomputing.com</a><BR>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.riverbankcomputing.com/mailman/listinfo/pyqt">http://www.riverbankcomputing.com/mailman/listinfo/pyqt</a><BR>
&gt;<BR>
<BR>
<BR>
</SPAN></FONT></BLOCKQUOTE>
</BODY>
</HTML>