128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
|
||||||
1 | ||||||
Можно ли один раз создать функцию в потоке, а потом просто вызывать ее30.10.2012, 09:47. Показов 5065. Ответов 31
Метки нет (Все метки)
Не ругайтесь, я искал, не нашел ответа на такой вопрос.
Я вот использую потоки следующим образом:
Пояснение: Можно ли использовать поток не бесконечным циклом, а один раз его Start(), а потом обращаться по имени функции, будет ли она выполняться в отдельном потоке?
0
|
30.10.2012, 09:47 | |
Ответы с готовыми решениями:
31
Можно ли в ENTER_FRAME запустить функцию один раз? Написать функцию раньше мейна, через void. потом в мейне её вызывать Вызывать функцию в программе несколько раз Как реализовать функцию-член, которую можно вызвать только один единственный раз? |
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
|
||||||
31.10.2012, 12:57 [ТС] | 21 | |||||
Подскажи, ну предположим я завершу его через Abort()(?), будет это выглядеть как
0
|
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
|
31.10.2012, 13:03 | 22 |
KokosSPb, Что значит выполниться? Он будет запущен и тут ему придет сигнал завершения и он завершится. Если ты в потоке будешь выполнять какую либо функцию, то сообщение дождется передачи управления и грохнет поток. Что успеет выполниться, а что нет, в каждом случае нужно смотреть экспериментально.
0
|
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
|
|
31.10.2012, 13:04 [ТС] | 23 |
Ну вот я о томже а как мне грамотно разрушить поток изнутри?
0
|
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
|
31.10.2012, 13:07 | 24 |
KokosSPb, Уничтожить объект класса потока. Конкретный способ зависит от конкретной IDE
0
|
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
|
|
31.10.2012, 13:10 [ТС] | 25 |
IDE
MicroSoft VisualStudio 2008
0
|
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
|
31.10.2012, 13:21 | 26 |
KokosSPb, Говорят что лучше использовать .RequestStop(); , но тогда поток будет ждать завершения текущей функции. Либо используй .Abort() ,тогда поток завершит выполнение при первой же передаче управления.
1
|
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
|
|
31.10.2012, 13:26 [ТС] | 27 |
0
|
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
|
31.10.2012, 13:32 | 28 |
KokosSPb, А ну да .RequestStop() это если ты C# используешь. Если MFC, то там кажется такой функции даже нет, там просто завершаешь функцию потока. Я уже все нюансы не помню точно, последнее время VS c Qt использую и там потоки все Qt-шные.
1
|
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
|
|
31.10.2012, 15:42 [ТС] | 29 |
а, ну я так и делаю, понятно, спасибо
Добавлено через 1 час 43 минуты
0
|
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
|
31.10.2012, 18:18 | 30 |
KokosSPb, Передаешь потоку сообщение с параметрами и все.
0
|
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
|
||||||
01.11.2012, 08:05 [ТС] | 31 | |||||
Если не сложно, на примере вызова потока...
0
|
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
|
01.11.2012, 08:12 | 32 |
KokosSPb,
Тут вообще два варианта есть. 1. Переопределить конструктор с нужными параметрами, эти параметры поместить в объект класса потока и при вызове основной функции потока, эти параметры брать через this. (не помню только везде ли можно переопределить конструктор, так что нужно проверять) 2. Запустить поток без параметров, а потом послать ему сообщение через PostThreadMessage с нужными тебе параметрами.
1
|
01.11.2012, 08:12 | |
01.11.2012, 08:12 | |
Помогаю со студенческими работами здесь
32
Как каждый раз вызывать функцию с разной задержкой? Создать функцию, определяющую номера элементов, которые встречаются в массиве только один раз Создать функцию, которая будет вызывать другую функцию Как можно вызывать один класс в разных activity? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |