Форум программистов, компьютерный форум CyberForum.ru

Прервать выполнение функции в потоке - C++

Восстановить пароль Регистрация
 
rasnaut
0 / 0 / 0
Регистрация: 17.07.2008
Сообщений: 6
30.01.2013, 01:16     Прервать выполнение функции в потоке #1
Здравствуйте, у меня вопрос, возможно ли прервать функцию извне, при этом сама функция является "чёрным ящиком", то есть мы не знаем что там?
Например, у нас есть некий поток, в которому на выполнение передали функцию. В момент выполнения функции, поток получает сигнал (событие), которое ему приказывает срочно завершить все действия, но при этом не использовать terminate(). Как потоку в этом случае, не дожидаясь пока функция завершит своё действие, завершить её?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
MyThread::run()
{
     for(;;)
     {
        ...
        doSumFank(sumObj* sObj);
        ...
     }
}
void MyThread::doSumFunk(sumObj* sObj)
{
    ....
    sObj->MyFunk();//собственно, эту функцию как-то нужно прервать
    ....
}
Заранее, спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2013, 01:16     Прервать выполнение функции в потоке
Посмотрите здесь:

C++ как прервать работу функции???
Выполнение чистых виртуальных функции C++
C++ Выполнение не той функции при наследовании
Можно ли замедлить выполнение функции? C++
C++ Не могу создать поток( Нужно чтобы функция запускается в потоке и работала там пока не закроем в потоке)
Выполнение перегрузки функции C++
C++ Вернуть из функции значение; при этом прервать саму функцию
Выполнение функции в определенное системное время C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 08:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru