| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Передать vector<vector<T>> параметром в поток |
| Автор: wallstreet 16.8.2012, 17:38 |
| Добрый день. Подскажите пожалуйста, как передать двумерный вектор в поток в качестве параметра? |
| Автор: borisbn 17.8.2012, 06:47 |
| Не пойму вопроса... Передать что-то можно в функцию, а не в поток. |
| Автор: GremlinProg 17.8.2012, 07:52 |
| по указателю, например с ref-счетчиком, по типу OLE-объекта, или через глобальный вектор, с синхронизацией доступа к нему при инициализации потока, или вообще не передавать, оставить в глобальной видимости, с синхронизацией, если не критично по времени доступа к нему, или передавать не вектор, а указатель на интерфейс, осуществляющий над ним какую-то логику вариантов масса, выбор зависит от того, какая задача реализуется над этим вектором в потоке |
| Автор: wallstreet 17.8.2012, 11:07 | ||||||
| ко мне приходят потоком данные из таблице по дде. Я их получаю, парсю, и сохраняю в двумерный вектор. Для того, что бы иметь возможность получать не одну таблицу, а более, как я понимаю, мне необходимо выделить процесс сохранения таблиц в отдельные потоки и синхронизировать их работу между собой. Метод класса сохраняющий приходящие таблицы по нужным векторам:
а вот функция потока
компилятор ругается на выделенную строку:
|
| Автор: borisbn 17.8.2012, 11:14 | ||
| Андрей, так делать вообще нельзя. Ты передаёшь в поток указатель на вектор, который "помрёт" по выходу из функции DdeData::InsertData. Можно сделать как-нибудь так:
|
| Автор: wallstreet 17.8.2012, 12:10 |
спасибо, помогло. Правильно я понимаю, что если существует необходимость передать несколько параметров в функцию потока, нужно передавать указатель на структуру в качестве параметра? |
| Автор: borisbn 18.8.2012, 09:22 |
| > Правильно я понимаю, что если существует необходимость передать несколько параметров в функцию потока, нужно передавать указатель на структуру в качестве параметра? |