Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2019, 17:00   #1
SeregaGomen
Новичок
Джуниор
 
Регистрация: 26.12.2014
Сообщений: 1
По умолчанию Как остановить длительный процесс?

Коллеги, доброго времени суток!
Возникла следующая задача. Приложение запускает длительный вычислительный процесс (например, решение системы линейных алгебраических уравнений - СЛАУ), реализованный сторонней библиотекой. Программа написана на "чистом" С++ с использованием только стандартных библиотек. Для решения СЛАУ предполагается использование в том числе и сторонних библиотек (например, Eigen), которые не предоставляют никаких средств прерывания своих процедур. Как остановить длительный вычислительный процесс? Если запустить функцию расчета в отдельном std-потоке, то там вроде бы нет возможности его прерывания (он может закончиться только так сказать естественным путем). Как это выполнить практически, желательно стандартными средствами С++ (учитывая что предполагается реализация графического интерфейса для данной программы с наличием (естественно) кнопки прерывания расчета).

Последний раз редактировалось SeregaGomen; 28.04.2019 в 19:22.
SeregaGomen вне форума Ответить с цитированием
Старый 04.05.2019, 17:53   #2
taras-proger77
Заблокирован
 
Регистрация: 17.12.2018
Сообщений: 514
По умолчанию

Хендл потока есть? Тогда TerminateThread.
taras-proger77 вне форума Ответить с цитированием
Старый 04.05.2019, 18:04   #3
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Вместо потоков используйте процессы. Запускаете расчёт в отдельном процессе и убиваете процесс.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 05.05.2019, 10:16   #4
taras-proger77
Заблокирован
 
Регистрация: 17.12.2018
Сообщений: 514
По умолчанию

Зачем?
taras-proger77 вне форума Ответить с цитированием
Старый 05.05.2019, 10:32   #5
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
Зачем?
Что-бы память не утекала.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 06.05.2019, 07:39   #6
taras-proger77
Заблокирован
 
Регистрация: 17.12.2018
Сообщений: 514
По умолчанию

А как ты собрался организовать её утечку?
taras-proger77 вне форума Ответить с цитированием
Старый 06.05.2019, 07:58   #7
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
А как ты собрался организовать её утечку?
Запустили поток, поток выделил память, поток убили - память осталась.
waleri вне форума Ответить с цитированием
Старый 06.05.2019, 08:14   #8
taras-proger77
Заблокирован
 
Регистрация: 17.12.2018
Сообщений: 514
По умолчанию

Во-первых даже если бы он и выделял память, то всё равно известно, где он это сделал. А во-вторых при решении СЛАУ только реализации методов, основанных на определителях, нуждаются в дополнительной памяти.
taras-proger77 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Остановить процесс созданный CreateProcess Shouldercannon Общие вопросы Delphi 4 23.12.2017 19:22
Длительный ввод bize Microsoft Office Excel 2 20.01.2013 00:49
Как остановить процесс Volkogriz Общие вопросы Delphi 1 15.01.2009 10:40
Остановить процесс Shurik Hacker Win Api 4 20.07.2007 08:05