Нужна помощь по работе с объектами

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 689
Баллы
113
В общем сломал весь мозг, нужны советы и примерчики :-)

Задача в следующем. Нужно запустить параллельный поток и в нем получать параметры инстанса.
с запуском проблем нет. а вот как дошло до считывания параметров инстанса, пошел жесткий головняк.
итак по порядку.
сделал класс для прокидывания объектов инстанса и проджекта, так как в параллельную процедуру можно прокинуть только один объект.
C#:
        public class test1        // класс для передачи в паралельную функцию
        {
            public Instance instance;
            public IZennoPosterProjectModel project;
        }
сделал процедуру запуска параллельного потока и в ней же тестовый вывод параметров передаваемых объектов. тут проблем нет.
C#:
        public static void Test_Start(IZennoPosterProjectModel project, Instance instance )
        {
        test1 ss1 = new test1();     // создали новый объект
        ss1.instance = instance;    // заполнение
        ss1.project = project;        // заполнение
            // тестовый вывод значений
            string uu1=    ss1.instance.Port.ToString();
            ss1.project.SendInfoToLog("Port  в обычной функции - " + uu1);
            uu1=    ss1.instance.ScreenResolution.Height.ToString();
            ss1.project.SendInfoToLog("Height в обычной функции - " + uu1);
            // запуск парралельного потока с передачей объекта
            Thread myThread = new Thread(new ParameterizedThreadStart(Refresh) );
            myThread.Start(ss1);
        }
сделал сам параллельный поток , там вот все работает, кроме объекта instace. для пробы всунул скриншот инстанса. он работает.
C#:
        public static void Refresh(Object eee_my)  // функция паралельного потока
        {
        test1 dd1 = (test1) eee_my; // приняли передаваемый объект
        // тестовый вывод
        string uu1=    dd1.instance.Port.ToString();
        dd1.project.SendInfoToLog("Port  в паралельном потоке - " + uu1);
        uu1=    dd1.instance.ScreenResolution.Height.ToString();
        dd1.project.SendInfoToLog("Height в паралельном потоке - " + uu1);
        
        // тестовый скрин с инстанса
        ZennoPoster.ImageProcessingCropFromScreenshot(dd1.instance.Port, "C:\\ResultImage.jpeg", 10, 10, 150, 250, "pixel");   
        }
результат работы
48085
вот порт инстанса доступен, а другие параметры нет.

Возможно с инстансом надо работать по другому, так как ImageProcessingCropFromScreenshot нормально отработал в параллельном потоке, и просит всего навсего порт инстанса.
вот собственно и вопрос, как создать объект инстанса по его порту , аналогично функции ImageProcessingCropFromScreenshot для доступа к его параметрам ? сам я, не знаю куда копать.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 689
Баллы
113
разобрался. оказывается надо просто создать новый объект инстанса (facepalm)
кому интересно , вот так
C#:
Instance instance_1 = new Instance(dd1.instance.Url, dd1.instance.Port,dd1.instance.Address.ToString());
// здесь работаем с новым instance_1
instance_1.Dispose(); // уничтожить перед выходом
сам спросил, сам ответил. красавчиг *HAHA*
 
  • Спасибо
Реакции: ramzes8

ramzes8

Client
Регистрация
27.05.2016
Сообщения
43
Благодарностей
45
Баллы
18
Здравствуйте, подскажите как реализовать в параллельном потоке: отслеживать работу браузера и если появился XPath отписать в лог, и дальше работать.
Я загружаю профиль и работаю ЗП руками, управляю через Windows.Forms - выбираю, сохраняю профиль и т.д. поэтому в общем коде не получается реализовать из-за последовательной работы кода.
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 364
Благодарностей
3 292
Баллы
113
разобрался. оказывается надо просто создать новый объект инстанса (facepalm)
кому интересно , вот так
C#:
Instance instance_1 = new Instance(dd1.instance.Url, dd1.instance.Port,dd1.instance.Address.ToString());
// здесь работаем с новым instance_1
instance_1.Dispose(); // уничтожить перед выходом
сам спросил, сам ответил. красавчиг *HAHA*
Объект instance живёт только в рамках своего C# экшена.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)