Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Расчет

389
22 августа 2002 года
Dmitri
69 / / 20.08.2000
При расчете моя программа перегружает проц настолько, что все нафиг отрубается. Как понизить приоритет, ил еще как-нибудь, чтобы программа успевала отображать данные в StringList?
644
22 августа 2002 года
Munika
12 / / 20.01.2000
Ну во-первых, вы уверены, что расчет виноват.
Во-вторых вы можете использовать объект "поток", дать ему низкий приоритет, ну сделать в нем свой расчет. Только с потоком надо аккуратно работать. У меня, например, поток с устройством работает, а вызывается по таймеру. Там есть заковырки с синхронизацией - дело в том, что мне постоянно надо опрашивать устройство. Если у Вас проще задача, то и с потоком проще
Если нужен небольшой пример - могу написать.
697
24 августа 2002 года
bjaka_max
22 / / 20.04.2000
Цитата:

On 2002-08-22 1636, Dmitri wrote
При расчете моя программа перегружает проц настолько, что все нафиг отрубается. Как понизить приоритет, ил еще как-нибудь, чтобы программа успевала отображать данные в StringList?


Дело не в том, что процессор перегружается... просто твои вычисления идут в одном треде (нити, потоке) с рисоватием, и пока они не закончатся программа рисовать ничего не начнёт. Предыдущий оратор правильно написал - делай вычисления в отдельном потоке. В CB есть пример про сортировку массивов тремя способами одновременно.

389
24 августа 2002 года
Dmitri
69 / / 20.08.2000
Поконкретнее можно? Пример приведи, как создать новый поток, а то в BCB такие примеры...
442
25 августа 2002 года
HexoGenus
121 / / 20.03.2000
Способ который я предлагая я сам не использовал а только читал о нем.
Насколько я понимаю вычисления утебя идут в цикле. Если это так то нужно вставить в цикл, в котором происходят вычисления, вызов Application->ProcessMessages(); Т.е.:

for(.....
{
// здесь выполняются вычисления
Application->ProcessMessages();
}
Если получится то плиз напиши об этом...
317
26 августа 2002 года
Relax
573 / / 20.09.2000
нормальные по моему примеры... самое простое - создаь поток через визард как отдельный модуль... File->New->Other... а там выбираешь Thread Object. Если надо - вышлю пример...
697
29 августа 2002 года
bjaka_max
22 / / 20.04.2000
//Я это себе писал давно...
//MaxTread.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include &quot;MaxTread.h&quot;

#pragma package(smart_init)
extern TThread *Thread;

//---------------------------------------------------------------------------
__fastcall TMaxThread::TMaxThread(void)
: TThread(False)
{
FreeOnTerminate = True;
Synchronize(DoVisualProgressForm);
}
//---------------------------------------------------------------------------
void __fastcall TMaxThread::DoVisualProgress(void)
{
//Здесь сама визуализация...
}
//---------------------------------------------------------------------------
void __fastcall TMaxThread::DoVisualProgressForm(void)
{
//Тут я показывал окно в котором происходит визуализация
}
//---------------------------------------------------------------------
void __fastcall TMaxThread::VisualProgress(void)
{
Synchronize(DoVisualProgress);
}
//---------------------------------------------------------------------
void __fastcall Execute(void)
{
//Тут вычисления идут...
}

//А это уже пошёл MaxTread.h
//---------------------------------------------------------------------------
#ifndef MaxTreadH
#define MaxTreadH
//---------------------------------------------------------------------------
#include <Classes.hpp>
//---------------------------------------------------------------------------
class TMaxThread : public TThread
{
private:
protected:
void __fastcall Execute(void);
void __fastcall DoVisualProgress(void);
void __fastcall DoVisualProgressForm(void);
void __fastcall VisualProgress(void);
public:
__fastcall TMaxThread(void);
};
//---------------------------------------------------------------------------
#endif
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог