@Fox Привет.Я описывал задачу в этой теме https://community.bablosoft.com/topic/27417/вызов-многопоточной-функции
Дело в том,что я не могу вообще никак перевести свой скрипт на многопоток,у меня тупо,что в вызове функции в многопоток,что просто обычный многопоток,выполняет свою работу с данными по очереди,а не одновременно.И это очень сильно бьет по времени,а нужна именно скорость обработки.Все уже готово и скрипт рабочий полностью,но скорость обработки заставила воспользоваться многопотоком.Ранее,подобных проблем не замечал,а сейчас элементарную задачу не могу уже несколько дней решить.
Скрипт очень простой и работает без браузера вообще,в скрипте используется только одно взаимодействие с гет запросом.Пример скрипта я приложил в этой теме(но без запросов),он точно почти такой же,как и основа.
Логика такова:
1)Запускается скрипт (без всяких ресурсов изначально и данных) и создаются два ресурса.
2)Делается запрос на сайт,который обрабатывается в отдельной функции,т.е. обрабатывает полученные строки и записывает в ресурс.
3)Вызывается функция в несколько потоков,которая работает (должна работать) с каждой строкой из созданного ранее ресурса(уникальной)в отдельном потоке.Данные обрабатываются и записываются во второй ранее созданный ресурс.
4)Как только данные обработаны,ресурс переводится в список и список записывается в файл.Более ничего не делается.
-Сперва я думал,что проблема в создаваемых в ходе работы ресурсах,но нет.Создавал изначально ресурсы и то же самое было.
-Потом пробовал брать из файлов значения\потом создавать файлы по ходу и из них брать данные\сохранять напрямую пытался и.т.д
-Возможно думал стоят какие то ограничения из за слабого пк с 4 гб оперативы и взял сервер с 64 гб,но как обрабатывалась строка за 5 минут на моем пк,так же по скорости и на серваке.Ладно, с этим я уже ничего не поделаю из за регулярок в проекте,согласен.Но вот перевести на поток и хотя бы по 10 строк одновременно обрабатывать,очень бы помогло.А сейчас в любом случае,у меня,сколько бы потоков не выставил - работает все равно как один,просто по очереди разный поток берет свои данные(
Буфер обмена в контексте БАС.
-
@Mic said in Буфер обмена в контексте БАС.:
Как сделать так чтобы буфер обмена внутри БАС был отделен от всей остальной системы? Т.е. чтобы
<CONTROL>Vполучал доступ только к буферу БАС? Вставка текста с интервалом 0 мс не подходит.Ни как, BAS использует буферобмена системы
-
@Fox Как быть если сайт, в поле которого я пытаюсь вставить текст дописывает некоторые слова (работает что-то вроде автозаполнения). Т.е. фактически он портит мой текст своими вставками. Общий буфер обмена использовать нельзя, т.к. на компьютере могут работать и случайно подменить текст скопировав что-то другое.
Может есть функция ввод текста целиком, а не побуквенно с интервалом 0 мс? БАС же как-то вставляет весь текст с помощью буфера.
-
изолировать буфер не получится. Но можно писать в него, непосредственно перед вставкой, минимизировав вероятность того, что в буфере будет мусор. После вставки, буфер можно почистить.
А чтоб не пересекались данные из разных потоков, запись в буфер блокируйте через глобальную переменную. -
@tet-vivi said in Буфер обмена в контексте БАС.:
@Mic а через dom js нельзя вставить текст?
Действие "Ввод текста" с отключеной эмуляцией клавиатуры итак вводит текст через js
-
@tet-vivi said in Буфер обмена в контексте БАС.:
@Mic а через dom js нельзя вставить текст?
Очень муторно. Там каждая строчка в поле ввода текста это отдельный элемент на странице. Да и через js не хочется менять страницу.
На сколько я понимаю при ctrl+v БАС читает буфер и вставляет его разом, а не побуквенно. Почему нельзя взять переменную и также использовать ее целиком без буфера?
-
@Mic said in Буфер обмена в контексте БАС.:
На сколько я понимаю при ctrl+v БАС читает буфер и вставляет его разом, а не побуквенно. Почему нельзя взять переменную и также использовать ее целиком без буфера?
Ctrl+v в BAS работает так же как если бы вы выполняли эту комбинацию клавиш на клавиатуре. Чтобы вводить этот текст по буквам вам нужно взять переменную с буфера обмена и использовать ее в действии "Ввод текста".
-
@spacerange said in Буфер обмена в контексте БАС.:
Чтобы вводить этот текст по буквам
Речь о том чтобы ввести весь текст сразу, а не по буквам.
-
@spacerange said in Буфер обмена в контексте БАС.:
поставить скорость ввода на 0
Не работает. Все равно буквы появляются по очереди, а не все сразу.
-
Я одного не пойму, в чем смысл для БАС чтение и запись в общий с системой буфер? Запись другой программой в буфер и чтение его из БАС, или наоборот, когда такое вообще может пригодиться?
За то есть полная невозможность исключить случайную подмену буфера пользователем скрипта. Не кажется ли вам, что разумнее сделать локальный буфер внутри БАС по умолчанию или, как минимум, добавить возможность использования локального буфера.
Может @support и @Fox смогут посодействовать в решении этой проблемы в новых версиях БАС? -
@Mic said in Буфер обмена в контексте БАС.:
Я одного не пойму, в чем смысл для БАС чтение и запись в общий с системой буфер? Запись другой программой в буфер и чтение его из БАС, или наоборот, когда такое вообще может пригодиться?
https://community.bablosoft.com/topic/3207/копировать-как-rich-text-text-html
Модуль изначально добавили в BAS, чтобы можно было читать\изменять\записывать данные в системный буфер обмена. То есть вы можете заранее сохранить в файл данные, которые будете вставлять через буферобмена на сайте и загружать их в буферобмена непосредственно перед вводом ctrl+vЗа то есть полная невозможность исключить случайную подмену буфера пользователем скрипта.
Записывайте данные в буферобмена непосредственно перед использованием и добавьте блокировку буферобмена через глобальную переменную
Не кажется ли вам, что разумнее сделать локальный буфер внутри БАС по умолчанию или, как минимум, добавить возможность использования локального буфера.
Может @support и @Fox смогут посодействовать в решении этой проблемы в новых версиях БАС?Я не знаю как можно реализовать локальный буферобмена (свой для каждого потока) и нет времени искать для этого возможные решения. А @support уже озвучивал план развития BAS