Unterprogramm in einem Thread laufen lassen?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
wdsl
User
Beiträge: 35
Registriert: Donnerstag 22. Februar 2007, 16:26

Hi,
ist es möglich ein Programm in einem Threas ablaufen zu lassen.

Hintergrund wir müssen einen Server steuern um es dem User aber möglichst einfach zu machen wollen wir den Server mit der GUI starten und wieder beenden.

Jetzt läuft der Server natürlich die ganze Zeit so das wir nicht auf Ausgabe warten können. Ich habe mir gedacht machste halt nen Threas auf geht aber irgendwie nicht ich bekomme folgende Fehlermeldung:
Unhandled exception in thread started by <bound method simulator.__bootstrap of <simulator(Thread-1, stopped daemon)>>
Error in sys.excepthook:
TypeError: 'NoneType' object is not callable

Original exception was:
Traceback (most recent call last):
File "threading.py", line 445, in __bootstrap
AttributeError: 'NoneType' object has no attribute 'acquire'
Hier noch der Testcode dafür:

Code: Alles auswählen

#! /usr/bin/env python
# -*- encoding: latin1 -*-

import threading
import wx
import wx.lib.newevent
import subprocess

		
class simulator(threading.Thread):
	
      def __init__(self , gui):

          threading.Thread.__init__(self)
          self.setDaemon(True)
          self.cancel = threading.Event()
          self.gui = gui
	    			
      def run(self):

	  cmd = "server.bin"
	  proc = subprocess.Popen(cmd, shell='true', stdout=subprocess.PIPE, stderr=subprocess.PIPE)
	  output = proc.stdout.read()
	  output1 = proc.stderr.read()
	  print "---"+ output + output1

bla = simulator("bla")
bla.start()
vielen Dank
wdsl

p.S. Ich freu mich schon auf den Tag wenn ich hier mal Antworten geben kann und nicht nur dumme Fragen stellen muss.
Antworten