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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
hamster28
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 41
#1

Future::wait_for не работает - C++

25.03.2014, 14:59. Просмотров 411. Ответов 4
Метки нет (Все метки)

скопировал пример с cplusplus.com
запускается. из while не выходит.
компилятор gcc. среда - qt creator, хотя это врят ли важно.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// future::wait_for
#include <iostream>       // std::cout
#include <future>         // std::async, std::future
#include <chrono>         // std::chrono::milliseconds
 
// a non-optimized way of checking for prime numbers:
bool is_prime (int x) {
  for (int i=2; i<x; ++i) if (x%i==0) return false;
  return true;
}
 
int main ()
{
  // call function asynchronously:
  std::future<bool> fut = std::async (is_prime,700020007); 
 
  // do something while waiting for function to set future:
  std::cout << "checking, please wait";
  std::chrono::milliseconds span (100);
  while (fut.wait_for(span)==std::future_status::timeout)
    std::cout << '.';
 
  bool x = fut.get();
 
  std::cout << "\n700020007 " << (x?"is":"is not") << " prime.\n";
 
  return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2014, 14:59     Future::wait_for не работает
Посмотрите здесь:

C++ 11 многопоточность Future и promise - C++
Всем Привет!!! Пытаюсь разобраться уже несколько дней, пока не получается, не могу понять как же всё таки работают future и promise и как с...

Не работает кириллица. Или работает, но illegale bute sequence - C++
В общем, столкнулся с такой проблемой. Есть консольное приложение. Не буду вдаваться в подробности, но мне понадобилось выводить русский...

То работает, то не работает. Массив из случайных вещественных чисел - C++
Добрый день всем. Я пытался сделать следующее: создать массив из вещественных чисел. Ввести туда числа случайным образом. А потом вывести...

Не работает явное преобразование типа, а неявное работает. - C++
Опечатался. Не работает явное преобразования, а не явное работает. Есть класс( не обращайте внимание на члены данные класса ): class...

Приложение работает в Win2K, не работает в Win2003 - C++
Может кто сталкивался - прога написанная на VC++ нормально работает в Win2K(Prof/Server), но &quot;вылетает&quot; в Win2003Server. Причем случиться...

Код не работает в VC++ 6.0 но работает в MSVC++ 2010 - C++
Что делать как перевести, ведь как мне кажеться должно быть подобно. Проблемма например в заполнении структуры void...

Работает в онлайн компиляторах, но не работает у меня - C++
Проверяю данные, но на компьютере не работает, в чем роблема? #include &lt;string.h&gt; #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; ...

Apply_visitor и std::future - Boost C++
Есть такой надуманный код. Я не могу понять почему не работает apply_visitor к объекту std::future который имеет возвращаемый тип...

ExecutorService, ArrayList<Future<>> - Java SE
Такой вот код, получаю nullPointException на строчке FutureCount.add(pool.submit(new Counter(startValue,TH1)));, когда пытаюсь...

Использование AsynchronousSocketChannel и Future <T> - Java SE
Задали в универе написать программу, асинхронно вычисляющую две функции. Вот что нужно использовать : &quot;Use Java, processes and...

Игра Weapon of The Future
Закончена игра : Weapon of the Future(Оружие будущего).Эта игра- смесь квеста и стрелялки. Написана на C++ Builder.Целью вашей игры будет...

Шаблон проетирования Future (будущие) - C#
Здравствуйте, скажите пожалуйста о шаблон проектирования Future (будущие) пол интернета облазил, информации ноль. Если можно киньте...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aLarman
641 / 562 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
25.03.2014, 15:23     Future::wait_for не работает #2
C++
1
while (fut.wait_for(span)==std::future_status::timeout)
скорее всего это условие всегда истинно

Добавлено через 3 минуты
или....Вы недождались завершения операции
hamster28
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 41
25.03.2014, 15:29  [ТС]     Future::wait_for не работает #3
тогда возникает вопрос, почему оно истинно и как сделать, чтоб все работало. если я правильно понимаю, то мы просто ждем окончания выполнения функции, проверяя каждые 100 мс.
неужели она никогда не заканчивается? попробовал с малыми числами, све так же висит.
или таймаут как-то не так работает? это ж пример с с++!)
aLarman
641 / 562 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
25.03.2014, 15:40     Future::wait_for не работает #4
аа я понял в чем дело, async предалагает асинхронную задачу, выполнять ее в отдельном потоке или нет, решает система, и тут видимо решение не запускать в отдельном потоке, попробуйте так

std::future<bool> fut = std::async (std::launch::async, is_prime,700020007);

Добавлено через 2 минуты
если решено не выполнять в отдельном потоке, то выполнение будет производиться, когда будет запрошен результат, но мы не доходим до fut.get()
DiffEreD
1429 / 766 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
25.03.2014, 15:40     Future::wait_for не работает #5
Вот тут же дается нормальный наглядный пример: wait_for
Yandex
Объявления
25.03.2014, 15:40     Future::wait_for не работает
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru