Используя библиотеку POCO C ++, как я могу передавать данные в тему?
-
11-12-2019 - |
Вопрос
Так что мой вопрос на самом деле имеет несколько частей:
Использование библиотеки потоков POCO:
- Каковы все возможные методы передачи данных к потокам (при вызове потоков, так и для уже запущенного потока).
- какие методы предпочтителен вами и почему?Можете ли вы предоставить любую дополнительную информацию о вашем опыте, используя эти методы?
- Какие методы рекомендуются прикладной информатики (автор 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
Не связан с StackOverflow