Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Progress bar в консоли 
:(
    Опции темы
Mormishka
Дата 18.2.2011, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 236
Регистрация: 25.8.2010

Репутация: нет
Всего: нет



Есть программа на консоли, которая рассчитывает очень долго некоторые вычисления. Не будет ли затратно выводить на консоль процесс? Сколько вообще он занимает процессора вывод через printf()?

PM MAIL   Вверх
Artemon
Дата 18.2.2011, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: 1
Всего: 20




for(int k = 0; k < 1000; k++)
{
if(k%10==0)
printf("progress");
}


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
hawk3500
Дата 18.2.2011, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 6.2.2009

Репутация: нет
Всего: 2



Если есть возможность на мой взгляд надо сделать так:

1.создать глобальную переменную которая будет отображать процент выполнения.-progres;
2.создать вторую глобальную переменную которая служит флагом.Допустим bool StartProgressBarr;И если идёт обработка то значение
переменной TRUE если нет обработки и прогресс бар не нужен то FALSE;
3.Создать поток который и будет выводить прогресс:

DWORD WINAPI RThreadProc( LPVOID lpParam ) 


    while(TRUE)
   {
      while(StartProgressBarr==FALSE)Sleep(20);
      printf("%d",progres);
      if(progres==100)StartProgressBarr=FALSE;//100%
      Sleep(20);
   }
return 1;
}

4.Создать этот поток.
Таким образом и процессор на это тратиться сильно не будет, и конфликта с другими процессами в разделении процессорного времени не будет благодоря Sleep();Значение Sleep уменьшать не стоит, если хотите то увеличте, менее 20 милисекунд система отрабатывает с большой погрешностью.Т.е. Sleep(10) в реальности "усыпит поток" на 10-30 мс.
--------------------
воин dzen'a
PM MAIL   Вверх
jonie
Дата 19.2.2011, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



hawk3500, а зафига так сложно? просто надо сделать какой-нибудь void AddProvress(), где и выводить символ "#" например. Саму функцию вызывать в нужном месте, как указал Artemon


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
boostcoder
Дата 19.2.2011, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0652 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.