2012-07-25 34 views
6

Vì vậy, câu hỏi của tôi thực sự có một số phần:Sử dụng Thư viện Poco C++, làm thế nào tôi có thể chuyển dữ liệu vào một chuỗi?

Sử dụng Poco Thư viện Threading:

  1. gì là tất cả các phương pháp có thể cho qua dữ liệu để đề (ở cả hai chủ đề gọi và cho một thread đang chạy) .
  2. Phương pháp nào được bạn ưu tiên và tại sao? Bạn có thể cung cấp thêm bất kỳ thông tin nào về trải nghiệm của mình bằng các phương pháp này không?
  3. Phương pháp nào được khuyến cáo bởi Ứng dụng Tin học (tác giả của Poco)? Có bất kỳ tài liệu bổ sung nào được cung cấp bởi Ứng dụng Tin học mà vạch ra các đối số truyền qua cho các chủ đề không?

Tôi đã nhìn đây đã:

Cảm ơn trước ...

Trả lời

15

Cách kinh điển của các đối số qua to a thread mới là thông qua lớp con Runnable mà bạn sẽ cần tạo ra làm điểm nhập chuỗi. Ví dụ:

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(); 

Để chuyển dữ liệu đến một chuỗi đã chạy, giải pháp tốt nhất tùy thuộc vào yêu cầu của bạn là gì. Đối với một kịch bản chuỗi công nhân điển hình, hãy xem xét sử dụng Poco::NotificationQueue. Bạn có thể tìm thấy mẫu hoàn chỉnh có giải thích tại đây: http://pocoproject.org/slides/090-NotificationsEvents.pdf

+2

Từ chính người đàn ông đó. Günter là người sáng lập Tin học ứng dụng và là Trưởng nhóm dự án trên Thư viện Poco C++. Cảm ơn bạn rất nhiều, Günter, đã dành thời gian để trả lời câu hỏi này! – Homer6

+0

Đối với những người gặp phải bài đăng này, tôi cũng thấy liên kết này hữu ích: http://www.cs.bgu.ac.il/~spl111/PracticalSession09_-_Threads_Using_POCO – Homer6