Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 июн 2024, 05:11

Программная пауза

Автор trialex3, 13 апр 2018, 14:23

0 Пользователей и 1 гость просматривают эту тему.

trialex3

Всем привет. В движении документа между итерациями нужно реализовать небольшую паузу, но чтобы она не нагружала сервак.Но нужна пауза встроенными средствами(т е ничего не скачивать или настраивать). Пока нашел вот такую
    Процедура Спать(ВремяМС)
    Если ВремяМС = 0 Тогда
        Возврат
    КонецЕсли;
    Сигнатура = Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss");
    ПутьСкрипта = КаталогВременныхФайлов()+"SleepScript"+Сигнатура+".vbs";
    СкриптФайл = Новый ТекстовыйДокумент;
    СкриптФайл.ДобавитьСтроку("WScript.Sleep("+Формат(ВремяМС, "ЧГ=0")+")");
    СкриптФайл.Записать(ПутьСкрипта, КодировкаТекста.OEM);
    WSHShell = Новый COMОбъект("WScript.Shell");
    WSHShell.Run("wscript.exe """+ПутьСкрипта+"""", 0, Истина);
    УдалитьФайлы(ПутьСкрипта);
КонецПроцедуры


Начал тестить. На 20 итераций все норм. поставил 100 - зависло все.
Есть какие идеи?

alex0402

можно выполнять команду ping 127.0.0.1
Спасибо за Сказать спасибо

Kerbert

Процедура Пауза(Время) Экспорт

   ВремяЗавершения = ТекущаяДата() + Время;
   Пока ТекущаяДата() < ВремяЗавершения Цикл
   КонецЦикла;

КонецПроцедуры
Время - Число - Длительность задержки в секундах.

trialex3

Цитата: Kerbert от 13 апр 2018, 14:30
Процедура Пауза(Время) Экспорт

   ВремяЗавершения = ТекущаяДата() + Время;
   Пока ТекущаяДата() < ВремяЗавершения Цикл
   КонецЦикла;

КонецПроцедуры
Время - Число - Длительность задержки в секундах.
Хорошая идея, но в секундах это слишком долго. Есть ли что то похожее но в миллисекундах?

Поиск родных

миллисекунды - это секунды, помноженные на 0.001, то ли поделенные на 1000,
если я правильно припоминаю школьный курс арифметики

AIFrame

Цитата: alex0402 от 13 апр 2018, 14:26
можно выполнять команду ping 127.0.0.1
При условии, что лупбэк не пингуется.
Иначе это бессмысленное занятие.
Вот какой-нибудь 10.10.10.10 пингануть, которого в локалке в природе нет и никогда не будет - это уже лучше.
Поэтому
ping 10.10.10.10 -n X -w 1000>nul 2>nul
Где X - секунд ждать.
-w 1000 - 1 секунда

Теги:  

Похожие темы (5)

Рейтинг@Mail.ru

Поиск