Хз начет того, что кодеру сложно работать с кубиками. Я когда начинал работать с BAS, вообще был полный ноль в JS и прочих яп. Потом подучил js и работать с BAS стало в разы приятнее :) Просто вместо некоторых кубиков пишешь чистый код там где надо. Но кубики, при верно построенной логике, позволяют очень быстро решать задачи.
Конечно можно написать части кода в виде шаблонов и потом переиспользовать их. Но в формате BAS это и не нужно даже. ИМХО
BasRemote C# многопоточность
-
Собственно имею приложение на C#, в которое подключил BasRemote, есть премиум подписка, на сайте в деталях проекта указана поддержка удаленного выполнения функций, используя один поток получается стабильная работа программы, но при использовании двух или более начинаются ошибки, как будто перемешиваются данные потоков(куки и тд) и корректная и стабильная работы программы нарушается, ниже представлен код:
//инициализация клиента баса private static BasRemoteClient Init() { try { ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; var client = new BasRemoteClient(new Options { ScriptName = "PROJECTNAME", Login = "EMAIL", Password = "PASSWORD" }); var task = Task.Run(async () => await client.Start()); task.Wait(); return client; } catch (Exception e) { return null; } } BasRemoteClient client = Init(); //запуск новых потоков IBasThread thread = client.CreateThread();Вот пример метода который вызывается в потоке:
private string LoadLoginPage() { try { var task = Task.Run(async () => await thread.RunFunction("LoadLoginPage").GetTask()); bool stat = task.Wait(30000); if (!stat) throw new Exception("LoadLoginPage() timeout"); return task.Result; } catch (Exception e) { throw e; } }