Native компонента для 8.3, реализующая метод sleep()

Внешняя Native 64-битная компонента для 1C 8.3, которая реализует метод sleep() — паузу выполнения кода. Пауза для большой устойчивости сделана платформозависимой и требует WinAPI. Ид компоненты — AddIn.AddInNativeSleep.NativeSleep.

Полные исходники и скомпилированная dll доступны на гитхабе. Компонента имеет следующий метод:

sleep (Милисекунд) — переводит в ожидающее (sustain) состояние текущий тред без нагрузки на ядро CPU.

Пример использования на сервере

УстановитьВнешнююКомпоненту("ОбщийМакет.AddInNativeSleep"); // из макета с zip архивом
ПодключитьВнешнююКомпоненту("ОбщийМакет.AddInNativeSleep", "AddInNativeSleep" ТипВнешнейКомпоненты.Native);
Компонента = Новый("AddIn.AddInNativeSleep.NativeSleep");
Компонента.sleep(1000) // сон на 1 секунду, блокирующий метод

Установка в конфигурацию

  1. Скачать архив из релизов проекта на гитхабе, или в каталоге dlll_compiled/NativeSleep.zip, или и приложенного к статьей файла.
  2. Загрузить в конфигурацию в качестве общего макета с двоичными данными

9 Comments

  1. Infactum

    https://en.cppreference.com/w/cpp/thread/sleep_for

    Хоть ваша компонента и является, по сути, hello world, все равно похвально, что выкладываете на github.

    Только не надо при этом все содержимое рабочего каталога коммитить. Мусора очень много.

    Reply
  2. Timur.V

    + все остальные способы сделать паузу в 1с, ссылка.

    Reply
  3. ripreal1

    (1)Вынужденная мера. У крестов напряг с пакетными менеджерами зависимостей. Поэтому в проект приложил все необходимые зависимости для успешной компиляции. Хотя где-то может и переусердствовал.

    Reply
  4. Infactum

    (3) Откуда у вас там зависимости взялись? У вас компонента только под Win64 собрана. Кроме SDK ей ничего не надо.

    И под мусором я имел ввиду вовсе не это. У вас там даже файл эскизов страниц виндовых закрался, не говоря уж о более очевидных вещах)

    Reply
  5. herfis

    Эх…

    Для победы коммунизма нужна, конечно, native-компонента под все платформы.

    Чтобы воткнул макет в конфу и «like a boss».

    Но все равно спасибо.

    Reply
  6. leemuar

    У вас тоже не получилось заставить работать русскоязычные свойства и методы?

    Reply
  7. ripreal1

    (6) Русский язык не нужен в С++ компонентах я считаю.

    Reply
  8. leemuar

    (7) понятно, а заставить работать русскоязычные методы-то получилось?

    Reply
  9. ripreal1

    (8)

    Я не стал пробовать.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *