Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
kurosio
0 / 0 / 0
Регистрация: 09.01.2019
Сообщений: 10
1

Как использовать правильно потоки

07.02.2019, 10:59. Просмотров 896. Ответов 2
Метки нет (Все метки)

У меня есть нечто рода

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
void DiscordJob::SendMessageThread(const char *chanel, const char *pMessage)
{
    std::thread t([this, chanel, pMessage]() {
        SendMessage(chanel, pMessage);
    });
    t.detach();
 
    std::thread t1(&DiscordJob::SendMessage, this, chanel, pMessage);
        t1.detach();
}
так как запросы мне затормаживают работу самой программы мне нужно как то, это выполнять в thread
В данном случае все работает, каждый их этих с лямбой и без, но не каждый вызов этой функции передает аргументы функции.

А передает он либо текст из аргумента как должно быть
`(Hers in game) hello`
либо
`��UUU
И это когда как когда передаст когда нет.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2019, 10:59
Ответы с готовыми решениями:

Как правильно использовать потоки?
Тему про потоки прочёл. Так же ознакомился с классом mutex. И вот есть некий вопрос: как правильно...

Пожалуйста, объясните как использовать потоки
Доброго времени суток. Пожалуйста объясните как работать с потоками или киньте ссылу на статью....

Как правильно передать указатель на структуру, и правильно ее использовать
Я планирую сделать сортировку, но компилятор начал ругаться "Нет существует подходящей функции...

Как правильно создавать потоки?
Ребята, подскажите как правильно организовать работу функции в отдельном потоке, чтобы она не...

Как правильно потоки должны взаимодействовать друг с другом?
Добрый день. Встает вопрос по std::thread, а именно. Как несколько созданных потоков должны...

2
DrOffset
10927 / 5823 / 1435
Регистрация: 30.01.2014
Сообщений: 9,366
07.02.2019, 11:21 2
Лучший ответ Сообщение было отмечено kurosio как решение

Решение

kurosio, вероятно буфер, который содержит строку на которую указывает chanel (или pMessage), не доживает до начала работы потока иногда. Вам нужно скопировать строку в контекст потока, а не передавать ее по указателю.
1
kurosio
0 / 0 / 0
Регистрация: 09.01.2019
Сообщений: 10
07.02.2019, 11:35  [ТС] 3
Спасибо и вправду pMessage не доживал до потока
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2019, 11:35

Как правильно использовать map?
Свой код писал по примеру cut. Вот, что есть, и показываю скрин екхепшана, который...

Как правильно использовать struct?
Написал небольшую, глупенькую программку, но столкнулся с проблемой заполнения структуры. Если...

Как правильно использовать thread?
Не могу понять как удалить поток thread во время его выполнения. То есть у меня есть поток в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.