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; } }