Используя библиотеку POCO C ++, как я могу передавать данные в тему?

StackOverflow https://stackoverflow.com//questions/11659436

Вопрос

Так что мой вопрос на самом деле имеет несколько частей:

Использование библиотеки потоков POCO:

  1. Каковы все возможные методы передачи данных к потокам (при вызове потоков, так и для уже запущенного потока).
  2. какие методы предпочтителен вами и почему?Можете ли вы предоставить любую дополнительную информацию о вашем опыте, используя эти методы?
  3. Какие методы рекомендуются прикладной информатики (автор POCO)?Есть ли какая-либо дополнительная документация, предоставленная прикладной информатики, которая описывает передачу аргументов потоков?

    Я уже посмотрел здесь:

Это было полезно?

Решение

Канонический способ пропускания аргументов в новую нить - через подкласс Runnable, вам необходимо создать как точка записи потока.Пример:

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

Для передачи данных в уже запущенную нить, какое лучшее решение зависит от ваших требований.Для типичного сценария рабочей нитки рассмотрим, подумайте с использованием Poco :: Notificateueue .Полный образец с пояснениями можно найти здесь: http://pocoproject.org/slides/090-notificationsevents.pdf

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top