Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Общие вопросы > Как передать дин. массив в поток. (TThread) |
Автор: pukin 28.3.2008, 15:51 | ||
Здравствуйте! Подскажите как передать в поток заполненный дин. массив. Пример:
Сказать текст ошибки сейчас не могу. Т.к. пишу на коленке, но помню, что не получалось "с налёту убить Федота", т.е. передать массив потоку. Покажите на реальном примерчике, чтобы в голове сразу устаканилось. Заранее, премного благодарен. ![]() |
Автор: DmitryHT 28.3.2008, 16:00 |
через цикл по одному значению? |
Автор: pukin 28.3.2008, 16:17 | ||
Массив динамический я изначально не знаю сколько в нём данных. |
Автор: Rennigth 28.3.2008, 16:17 |
pukin, Значит что-то не так делал. Create вызывай с Susperded True, потом копируй массив, потом Resume делай. |
Автор: VICTAR 28.3.2008, 16:18 |
1) Попробуй привести к одному типу 2) А лучше сделай нормальный сеттер |
Автор: pukin 28.3.2008, 16:21 | ||
![]() Кто-нибудь из знающих может сейчас на своей машине (с дельфёй под рукой) попробовать сделать пример где потоку передаётся заполненный дин. массив. Добавлено через 2 минуты и 27 секунд
TThread.Suspend и TThread.Resume здесь не причём =)))) Я, просто, не умею правильно организовывать передачу дин. массива потоку и посему обратился к вам. Прошу вас, приведите живой пример. |
Автор: Rennigth 28.3.2008, 16:32 | ||
держи:
|
Автор: VICTAR 28.3.2008, 16:39 |
Вот конкретно с динамическим массивом |
Автор: pukin 28.3.2008, 17:09 |
Всё понял, спасибо большое за ответы. ![]() |
Автор: MetalFan 28.3.2008, 19:59 |
pukin, только учти, что не один пример не предусматривает корректную синхронизацию данных, что может привести к непредвиденным багам |
Автор: MetalFan 28.3.2008, 20:56 | ||
Rennigth, можно и копирнуть... ну в твоем примере криминала то почти нет. ибо в треде нет работы с массивом. кстати
кстати тут достаточно просто FThread.Free |
Автор: VICTAR 28.3.2008, 22:48 |
MetalFan, что не так в моем примере? ![]() |
Автор: MetalFan 29.3.2008, 09:50 |
VICTAR, у тебя передается ссылка на дин.массив в трэд, и потом в 2х разных потоках ведется с ним работа... если я не ошибаюсь Добавлено через 5 минут и 51 секунду нет, не ошибаюсь. так работать с данными из разных потоков недопустимо! |
Автор: VICTAR 29.3.2008, 10:21 |
Согласен. Был не прав, прошу прощения. Обиделся и встал в угол |
Автор: MetalFan 29.3.2008, 11:11 |
![]() ![]() |