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

Log in to reply