Задержки для освобождения процессора

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
rash
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 08.09.2004 (Ср) 12:26

Задержки для освобождения процессора

Сообщение rash » 08.09.2004 (Ср) 12:41

Задачка очень простая:
Обрабатываю Excel-табличку. Бегу по строкам вниз и выполняю определенные действия с этими строками.

Ессно все это происходит в цикле. Но вот беда, когда запускаю скрипт - откушивается 60-80% ресурсов обеих процессоров. Машина не слабая (2х-головый Р4 с гигом ОЗУ). Файлы как правило достаточно большие (по 2000-10000 строчек с 15-20 колонками).

Вопрос к знатокам:
Как внутри цикла поставить тормоз, который будет немного замедляя работу моего скрипта высвобождать ресурс процессора для выполнения других задач? (в Дельфи это делается одной командой)

Спасибо за участие.

marvan
Бывалый
Бывалый
 
Сообщения: 269
Зарегистрирован: 22.06.2004 (Вт) 13:26
Откуда: Москва

Сообщение marvan » 08.09.2004 (Ср) 13:02

'или так - прерваться только при действиях пользователя
    Declare Function GetInputState Lib "user32" () As Long
    '...
    If GetInputState() Then DoEvents
'или так - прерывалься всегда
    DoEvents
'или так - прерываться на 2 сек
    Start = Timer   ' Задает начало паузы.
    Do While Timer < Start + 2
        DoEvents    ' Передает управление другим процессам.
    Loop

любой из вариантов помещается внутрь цикла
p.s. тока последний вариант не рекомендую - это пауза в программе, но не высвобождение ресурсов процессоа

rash
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 08.09.2004 (Ср) 12:26

Сообщение rash » 08.09.2004 (Ср) 13:53

Данке шён.

Теперь имею точку отталкивания.

Будем пробовать :)

От тут знайшов ще щось по цьому питанню:

http://visualbasic.km.ru/command/d/doevents.html

Мож кому пригодится.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, SemrushBot и гости: 18

    TopList