![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 26.12.2014
Сообщений: 1
|
![]()
Коллеги, доброго времени суток!
Возникла следующая задача. Приложение запускает длительный вычислительный процесс (например, решение системы линейных алгебраических уравнений - СЛАУ), реализованный сторонней библиотекой. Программа написана на "чистом" С++ с использованием только стандартных библиотек. Для решения СЛАУ предполагается использование в том числе и сторонних библиотек (например, Eigen), которые не предоставляют никаких средств прерывания своих процедур. Как остановить длительный вычислительный процесс? Если запустить функцию расчета в отдельном std-потоке, то там вроде бы нет возможности его прерывания (он может закончиться только так сказать естественным путем). Как это выполнить практически, желательно стандартными средствами С++ (учитывая что предполагается реализация графического интерфейса для данной программы с наличием (естественно) кнопки прерывания расчета). Последний раз редактировалось SeregaGomen; 28.04.2019 в 19:22. |
![]() |
![]() |
![]() |
#2 |
Заблокирован
Регистрация: 17.12.2018
Сообщений: 514
|
![]()
Хендл потока есть? Тогда TerminateThread.
|
![]() |
![]() |
![]() |
#3 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
![]()
Вместо потоков используйте процессы. Запускаете расчёт в отдельном процессе и убиваете процесс.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
![]() |
![]() |
![]() |
#4 |
Заблокирован
Регистрация: 17.12.2018
Сообщений: 514
|
![]()
Зачем?
|
![]() |
![]() |
![]() |
#5 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
![]()
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
![]() |
![]() |
![]() |
#6 |
Заблокирован
Регистрация: 17.12.2018
Сообщений: 514
|
![]()
А как ты собрался организовать её утечку?
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,368
|
![]() |
![]() |
![]() |
![]() |
#8 |
Заблокирован
Регистрация: 17.12.2018
Сообщений: 514
|
![]()
Во-первых даже если бы он и выделял память, то всё равно известно, где он это сделал. А во-вторых при решении СЛАУ только реализации методов, основанных на определителях, нуждаются в дополнительной памяти.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Остановить процесс созданный 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 |