OOP und Threading, wie greife ich darauf zu?

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
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

Hallo

Ich hoffe ja mal das es möglich ist, dass was ich malwieder will:

Code: Alles auswählen

# -*- encoding: latin1 -*- 

import threading 
import time
import ausgabemodul
import Tkinter as tk
    
class simulator(threading.Thread): 
    
    def __init__(self): 

        threading.Thread.__init__(self)
        
    def run(self):
        def hallo():
            print "Hallo"
        
        
class andy(threading.Thread): 
    
    def __init__(self): 

        threading.Thread.__init__(self) 
                    
    def run(self):
        a = simulator()
        b = a.run()
        b.hallo()
              
bla = simulator() 
bla.start()
bla1 = andy() 
bla1.start()
Ich möchte vom Thread "andy" auf die Funktion "hallo" im "simulator" Thread zugreifen.

Ist mein Ansatz schon mal in die richtige richrung oder muss ich das ganz anders machen?

Für Hilfe währe ich sehr dankbar!
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys

if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Naja, fast.

Mein Code ist jetzt ungetestet, aber sollte so in etwa funktionieren. Schau dir in der Manual aber auf jeden Fall mal "Event", "Lock" und "Queue" an, das sind die richtigen Strukturen, um zwischen zwei Threads zu kommunizieren.

Edit: Und wo ich gerade den Import von Tkinter sehe: Such noch mal ein weing im Forum nach Threading und GUI, da gibt es nämlich noch so einige Besonderheiten zu beachten.

Code: Alles auswählen

# -*- encoding: latin1 -*- 

import threading 
import time
import ausgabemodul
import Tkinter as tk
    
class simulator(threading.Thread):    
    def run(self):
        ....
    
    def hallo():
        print "Hallo"
        
        
class andy(threading.Thread): 
    def __init__(self, b):
        self.b = b
        threading.Thread.__init__(self) 
                    
    def run(self):
        self.b.hallo()
              
bla = simulator() 
bla.start()
bla1 = andy(bla) 
bla1.start()
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

Hallo

Danke für die Antwort!

Dein Code läuft.

Gruß
Andyh
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys

if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Antworten