|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.05.2018, 00:18 | #1 |
Пользователь
Регистрация: 18.03.2012
Сообщений: 47
|
Запуск процедуры хранящейся в массиве из потока - Delphi 10.1
Столкнулся вот с какой проблемой, я храню процедуры в массиве дабы в дальнейшем запускать их в новом потоке, но выполнение программы останавливается на ее запуске.
Код:
|
25.05.2018, 00:54 | #2 | ||
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Цитата:
У тебя Params - это массив, а ты пытаешься обратиться к нему по смещению Код:
Цитата:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
||
25.05.2018, 01:03 | #3 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
А ваще, юзать дин. массивы для хранения указателей - это эрзац. Для этого понаписано 100500 классов - наследников TList и дженериков. TThreadList ваще стандартный класс со времён царя гороха.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
25.05.2018, 02:37 | #4 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,894
|
Добавлю только.
Столкнулся вот с какой проблемой, я храню процедуры в массиве дабы в дальнейшем запускать их в новом потоке, но выполнение программы останавливается на ее запуске. Кода самой программы вы не привели. Привели только код дополнительного модуля. |
25.05.2018, 07:50 | #5 |
Пользователь
Регистрация: 18.03.2012
Сообщений: 47
|
А ты? Угостишь? А то видимо мое веществе действует слабее твоего, так как напрочь отключает у человека функцию адекватного оказания помощи.
Серьезно? Может мне в казино сыграть тогда? Я настолько фартовый, что в Код:
Код:
Я одинаково обращаюсь к Params и в SetArgs и в Execute, то есть волшебный компилятор в SetArgs сначала к Params обращается как к массиву, а в Execute решает превратить его в нечто иное и обращаться по смещению? Я немного не понимаю, пришел с C# и там массивы работают адекватно, установка переменной Params[i] = '1111'; и так же можно получить что там лежит s = Params[i]; (s - 1111) |
25.05.2018, 07:52 | #6 |
Пользователь
Регистрация: 18.03.2012
Сообщений: 47
|
Я так понимаю, огромную роль тут играет код основной программы? Ну держи
Код:
|
25.05.2018, 07:57 | #7 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Иди обратно, откуда пришёл. У нас тут динамические массивы нумеруются с нуля и до "кол-ва элементов минус 1". А WinAPI-функция GetCurrentThreadID() возвращает уникальный для текущей сессии номер потока, который вызвал эту функцию.
Избавься от динамических массивов и проблема пропадёт. Ты тупо долбишься за пределы выделенной памяти или в неинициализированный элемент. И с веществами завязывай. Это дорого и неэффективно. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
Последний раз редактировалось min@y™; 25.05.2018 в 08:14. |
25.05.2018, 08:10 | #8 |
Пользователь
Регистрация: 18.03.2012
Сообщений: 47
|
TThreadList не дает возможности мне узнать ID потока. И как мне узнать ID потока в котором был запущен Execute? Суть даже не в самих потоках, я таким образом пытаюсь хранить имена функций и параметров, самый легкий вариант который я увидел, это забивать в массив под ID потока, потом уже в Execute по ID выполняющегося потока доставать эти данные из ID
|
25.05.2018, 08:28 | #9 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Конечно. Это просто список указателей. Он предназначен именно для манипуляции с ними.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
25.05.2018, 08:33 | #10 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Цитата:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
Последний раз редактировалось min@y™; 25.05.2018 в 08:37. |
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подпрограммы-процедуры в Delphi. Найти наименьшие положительные элементы и их порядковые номера в массиве | emalf | Помощь студентам | 6 | 15.12.2016 03:03 |
запуск потока из таймера, как? | buket | Общие вопросы Delphi | 6 | 16.12.2011 11:36 |
[Delphi] Запуск процедуры с параметром | ZePr | Помощь студентам | 10 | 02.02.2011 16:32 |
Запуск таймера из потока (delphi 2010) | Terikon | Общие вопросы Delphi | 10 | 07.08.2010 18:09 |
Запуск процедуры из процедуры с дополнением | 1sal1 | Общие вопросы Delphi | 3 | 06.10.2008 21:54 |