2017-06-04 3 views
1

mit laufen ich ziemlich neu bin asyncio, so viele Dinge sind noch viel zu weit von meinem Verständnis doch sowieso.Wie 2 Schlaufen zur gleichen Zeit asyncio

Ich habe eine Main While-Schleife, die im Grunde nur einige Sachen auf dem Bildschirm mit PyGame zeichnet, und was ich tun möchte, ist eine andere while-Schleife asynchron zu laufen, die einige zu aktualisierende Daten aktualisiert.

async def update(reader, writer): 
    while True: 
     json_data = await reader.read(1000) 
     self.json_data = json.loads(json_data) 

def run(self): 
    while True: 
     self.draw() 
+1

Erstellen Sie einfach [zwei verschiedene Aufgaben] (https://asyncio.readthedocs.io/en/latest/hello_world.html#creating-tasks). 'self.draw()' sollte jedoch asynchron sein. Verwenden Sie ggf. ['loop.run_in_executor '] (https://asyncio.readthedocs.io/en/latest/threads.html). – Vincent

Antwort

0

Try Threading:

import threading 

async def update(reader, writer): 
    while True: 
     json_data = await,reader.read(1000) 
     self.json_data = json.loads(json_data) 

def run(self): 
    while True: 
     self.draw() 

t = threading.Thread(target=update,args=(reader,writer)) 
t2 = threading.Thread(target=run,args=(self)) 
t.start() 
t2.start() 

Threading werden beide Prozesse gleichzeitig ausführen!

+0

Danke für die Antwort, aber ich dachte asyncio würde den Job in irgendeiner Weise tun ... Ich wollte nicht Threads von Anfang an verwenden. – Paradisee

Verwandte Themen