[PyQt] Signals across threads is slow
Romain Bignon
romain at peerfuse.org
Mon Dec 8 10:22:11 GMT 2008
Hello,
In a PyQT program, there is two classes, one derived from QThread, and one in
the main GUI thread.
A slot of the GUI thread's class is connected to a QThread signal, and it
seems that this is very slow to emit signal and/or call slot. This result
happens with an empty slot method too.
The hotshot profiler confirms that, the main thread is in the empty slot 70% of
time (and is called only 16 times).
class UDPStreamingThread(QThread):
def __init__(self):
QThread.__init__(self)
def run(self):
while 1:
# get some data from socket
self.emit(SIGNAL('messageReceived'), data)
class UDPStreamingReceiver(QObject):
def __init__(self, client):
QObject.__init__(self)
self.thread = UDPStreamingThread()
self.connect(self.thread, SIGNAL('messageReceived'), self.messageReceived)
def messageReceived(self, data):
return
Regards,
--
Romain Bignon -- http://romain.peerfuse.org
http://peerfuse.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20081208/84e17b15/attachment.bin
More information about the PyQt
mailing list