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

OOP und Threading, wie greife ich darauf zu?

Beitragvon Andyh » Samstag 15. März 2008, 17:17

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: Alles auswählen

import sys

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

Re: OOP und Threading, wie greife ich darauf zu?

Beitragvon EyDu » Samstag 15. März 2008, 17:42

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:

Beitragvon Andyh » Samstag 15. März 2008, 17:55

Hallo

Danke für die Antwort!

Dein Code läuft.

Gruß
Andyh
Meinen Dickschädel schon bemerkt?

Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!

Code: Alles auswählen

import sys

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

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]