Obtenez tous les éléments à partir du fil d'Attente

J'ai un thread qui écrit les résultats dans une File d'attente.

Dans un autre thread (GUI), je périodiquement (dans le cas d'INACTIVITÉ) vérifiez si il y a des résultats dans la file d'attente, comme ceci:

def queue_get_all(q):
    items = []
    while 1:
        try:
            items.append(q.get_nowait())
        except Empty, e:
            break
    return items

Est-ce une bonne façon de le faire ?

Edit:

Je demande parce que, parfois, les
thread en attente de coincer un peu
secondes sans prendre de de nouvelles
résultats.

Les "coincés" problème s'est avéré être parce que je fais le traitement dans le vide gestionnaire d'événements, sans veiller à ce que ces événements sont en fait générée par l'appel de wx.WakeUpIdle, comme il est recommandé.

OriginalL'auteur Eli Bendersky | 2008-10-01