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

Корректно убить поток - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Считывание данных из файла http://www.cyberforum.ru/cpp/thread1557772.html
Есть файл в котором содержится число 145. Мне нужно считать из файла это число без числа 5, то есть все числа до числа 5. Помогите.
C++ Удаление предлога из предложения Здравствуйте. Подскажите пожалуйста как удалить предлоги (если попадаются) из предложения. Код вот такой, но он не удаляет предлог ("на"). Прошу помочь: #include <stdlib.h> #include <iostream> #include <string.h> #include <locale> #include <stdio.h> #pragma warning(disable : 4996) using namespace std; http://www.cyberforum.ru/cpp/thread1557765.html
Табулирование функций C++
Сложить программу табулирования функции y=2arccos(x) на интервале a,b с шагом h=(b-a)/N, где N - целое число ( вводится с клавиатуры N#0), используя заданный цыкл. В пограме предусмотреть вычесление сумы квадратов y(min) и y(max). Не знаю как сделать табулирование, т.к пропустил эту тему
Помогите найти ошибку при заполнении вектора C++
Допустил ошибку при заполнении вектора. #include<iostream> #include<cstring> #include<vector> #include<iterator> using namespace std; int main(){ char a="9999"; char b="999"; vector<char>ch(strlen(a),0);
C++ Ошибка при перегрузке оператора вывода в файл http://www.cyberforum.ru/cpp/thread1557733.html
Добрый день, есть такой кусок кода: #include <iostream> #include <ostream> using std::ostream; using namespace std; std::ofstream &operator << (std::ofstream &out, Mass &a) {
C++ Вычислить среднее геометрическое положительных элементов каждого столбца матрицы как вычислить среднее геометрическое положительных элементов каждого столбца матрицы А(8,10) подробнее

Показать сообщение отдельно
mat_for_c
 Аватар для mat_for_c
120 / 115 / 21
Регистрация: 26.04.2013
Сообщений: 597
Завершенные тесты: 2

Корректно убить поток - C++

21.10.2015, 09:42. Просмотров 675. Ответов 27
Метки (Все метки)

Пусть имеется поток thrdWork, который обрабатывает большие данные. В результате этой работы в памяти каждый раз сохраняются наиболее лучшие результаты. Т.к. эти результаты перезаписываются, то вывод их в файл возможен по окончанию обработки данных, что не реально долго (возможно и сутки, если не дольше). Поэтому я хочу выводить результаты по нажатию на клавишу (скажем мне будет достаточно того, что thrdWork уже нашел), но при этом дальнейшая обработка мне не нужна, т.е. поток нужно убить раньше времени. Я пришел к 2 решениям:

1 решение:
Кликните здесь для просмотра всего текста
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
void Work()
{
   thread thrdWork(Processing);
   thrdWork.detach();
 
   char cmd;
 
   while (true) {
      cin >> cmd;
 
      if (cmd == 'd')
         // отладочная информация
         // сколько и с какими параметрами найдены
         writeDebugInfo();                
      else if (cmd == 'p') {
         writeBest();
         return;
      }
   }
}
 
 
//main
   thread thrd(Work);
   thrd.join();


и 2 способ:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// main
 
   vector<thread> v_thrd;
   v_thread.push_back(thread(Processing)); // thrdWork
 
   char cmd;
 
   while (true) {
      cin >> cmd;
 
      if (cmd == 'd')
         // отладочная информация
         // сколько и с какими параметрами найдены
         writeDebugInfo();                
      else if (cmd == 'p') {
         writeBest();
         v_thrd.clear();
      }
   }


Какой метод более корректен или есть решение получше,
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru