2012-07-25 5 views
6

Also eigentlich meine Frage hat mehrere Teile:Wie kann ich mit der Poco C++ Library Daten an einen Thread übergeben?

die Poco Threading-Bibliothek:

  1. Was für Übergabe von Daten an Fäden alle möglichen Methoden sind (sowohl auf Thread-Aufruf und für einen bereits laufenden Thread) .
  2. Welche Methoden werden von Ihnen bevorzugt und warum? Können Sie mit diesen Methoden zusätzliche Informationen zu Ihrer Erfahrung bereitstellen?
  3. Welche Methoden werden von Applied Informatics (dem Autor von Poco) empfohlen? Gibt es eine zusätzliche Dokumentation von Applied Informatics, die Passwörter für Threads beschreibt?

Ich habe hier schon sah:

Vielen Dank im Voraus ...

Antwort

15

die kanonische Weise des Führens Argumente zu einem neuen Thread ist über die Runnable-Unterklasse, die Sie als Thread-Einstiegspunkt erstellen müssen. Beispiel:

class MyThread: public Poco::Runnable 
{ 
public: 
    MyThread(const std::string& arg1, int arg2): 
     _arg1(arg1), 
     _arg2(arg2) 
    { 
    } 

    void run() 
    { 
     // use _arg1 and _arg2; 
     //... 
    } 

private: 
    std::string _arg1; 
    int _arg2; 
}; 

//... 

MyThread myThread("foo", 42); 
Poco::Thread thread; 
thread.start(myThread); 
thread.join(); 

Für die Weitergabe von Daten an einen bereits laufenden Thread hängt die beste Lösung von Ihren Anforderungen ab. Berücksichtigen Sie bei einem typischen Worker-Thread-Szenario die Verwendung von Poco::NotificationQueue. Eine vollständige Probe mit Erläuterungen finden Sie hier: http://pocoproject.org/slides/090-NotificationsEvents.pdf

+2

Vom Mann selbst. Günter ist Gründer von Applied Informatics und Projektleiter der Poco C++ Bibliothek. Vielen Dank, Günter, dass Sie sich die Zeit genommen haben, diese Frage zu beantworten! – Homer6

+0

Für Leute, die auf diesen Beitrag stoßen, fand ich auch, dass dieser Link nützlich ist: http://www.cs.bgu.ac.il/~spl111/PracticalSession09_-_Threads_Using_POCO – Homer6