Собственно имею приложение на 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;
}
}