Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
1 / 1 / 0
Регистрация: 19.02.2014
Сообщений: 18
1

Как запустить код в отдельном потоке

19.02.2014, 02:01. Показов 2380. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Прошу прощения за явно нубский вопрос, но не нашёл на него ответа. Собственно мне хотелось бы знать чем реализовывать показ деятельности программы.
Например:
C++
1
2
3
4
5
6
while (0 == 0)
{
k=+1;
Edit->Text = k;
Sleep(1000);
}
Тут значение K будет меняться каждую секунду, но я никогда этого не увижу, так как программа будет словно зависшей. Какие компоненты и как нужно использовать, чтобы в режиме реального времени во время работы программы отображались нужные мне данные?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.02.2014, 02:01
Ответы с готовыми решениями:

Как запустить определённый код в отдельном потоке по нажатию кнопки?
как запустить определённый код в отдельном потоке по нажатию кнопки?(этот код бесконечен)

Как запустить метод в отдельном потоке?
Есть у меня класс и статический метод Class myClass { ... public static void Method1(string...

Как запустить метод в отдельном потоке?
есть метод string s = mac.termt(m, m.GetLength(0)).ToString(); он очень долго весит при обработке...

Как запустить функцию в отдельном потоке?
Есть вот такая функция: bool form1::is_sector_overflowed(Label^ lbl, int x, int y, array<Label^,...

7
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
19.02.2014, 04:07 2
C++
1
2
3
4
5
6
7
8
9
10
11
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    int k=0;
    while (k <10)
    {
        k++;
        Edit1->Text = k;
        Application->ProcessMessages();
        Sleep(1000);
    }
}
}
1
511 / 196 / 26
Регистрация: 07.08.2013
Сообщений: 814
19.02.2014, 10:45 3
Лучший ответ Сообщение было отмечено BRcr как решение

Решение

Doctor Druhn, Вам вроде StatusBar нужен - Уроки по C++ Builder Урок 32. Компонент StatusBar.

Цитата Сообщение от Doctor Druhn Посмотреть сообщение
Тут значение K будет меняться каждую секунду, но я никогда этого не увижу, так как программа будет словно зависшей. Какие компоненты и как нужно использовать, чтобы в режиме реального времени во время работы программы отображались нужные мне данные?
Посмотрите компонент Timer - Timer / C++ Builder.

C++
1
2
3
4
5
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
    k++;
    Edit1->Text = k;
}
Для "не зависания" Sleep нужно убрать. Советую изучить Поток в C++ Builder и передача параметров.
2
1 / 1 / 0
Регистрация: 19.02.2014
Сообщений: 18
23.02.2014, 01:57  [ТС] 4
Спасибо большое, за оба ответа.
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.02.2014, 15:23 5
Цитата Сообщение от Kulgar Посмотреть сообщение
Советую изучить Поток в C++ Builder и передача параметров.
Не советую...
0
Марсианин)))
713 / 46 / 15
Регистрация: 18.07.2010
Сообщений: 634
23.02.2014, 16:41 6
Цитата Сообщение от Avazart Посмотреть сообщение
Не советую...
По чему. Не ужели надо через синхронизацию?
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.02.2014, 17:24 7
Цитата Сообщение от Xank Посмотреть сообщение
По чему. Не ужели надо через синхронизацию?
Ну передавать данные в поток, можно конечно и при остановленном потоке, но лучше сразу передавать данные в конструкторе.
Выводить же данные из потока нужно обязательно с синхронизацией.
1
511 / 196 / 26
Регистрация: 07.08.2013
Сообщений: 814
24.02.2014, 09:33 8
Цитата Сообщение от Avazart Посмотреть сообщение
Не советую...
Эти ссылки первые, что выдал гуглЪ. Я не приводил их как истину в последней инстанции, а лишь как направления, в которых стоит искать верный ответ.
0
24.02.2014, 09:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.02.2014, 09:33
Помогаю со студенческими работами здесь

Как запустить форму в отдельном потоке
Как запустить форму в отдельный поток.

Как лучше запустить метод в отдельном потоке?
Добрый день! Прошу вашего опытного совета. У меня есть статический метод, созданный в консольном...

Как запустить работу метода в отдельном потоке
У меня есть сервис, на нём есть void метод, его выполнение занимает много времени. Как мне сделать,...

Как запустить метод класса в отдельном потоке?
Как запустить метод класса в отдельном потоке?


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru