leone Ответов: 1

О outputdatareceived eventhandler процесса


Привет,
Моя проблема заключается в том, что я не могу отправить свой пользовательский объект в метод OutputDataReceived. Подробности:

У меня есть класс под названием Material, который включает в себя такие свойства, как URL, заголовок, описание и т. д.

Теперь я начинаю процесс. Моя цель - взять титул с помощью URL-адреса. Я имею в виду:

(псевдокод)
Материал m=новый материал(URL);
Process proc=новый процесс();
тез.Докл.информацию.Имя файла = youtube_dl;
тез.Докл.информацию.Аргументы="--Вам-титул "+м. URL-адрес; // получаем название, используя URL-адрес
процесс.OutputDataReceived += OutputDataReceived;
тез.Докл.Начать();

До сих пор все было в порядке. Я могу получить данные, используя e.Сведения в
OutputDataReceived недействительным(объект отправителя, DataReceivedEventArgs е) способ.

Проблема в том, что я хочу заполнить свой материальный объект этими данными вот так:
м. Заголовок=электронная.Сведения;
но я не могу передать ни одного аргумента, потому что аргументы eventhandler-это только object и DataReceivedEventArgs. Так как же мне это сделать, не используя глобальную переменную?

Что я уже пробовал:

Ничего особенного, я попытался поместить свои пользовательские данные в объектный параметр обработчика, но мне это не удалось. я запнулся.

1 Ответов

Рейтинг:
10

leone

Ладно я сделал это сам:

Материал m=новый материал(URL);
процесс.OutputDataReceived +=(Object _sender, DataReceivedEventArgs _args)=>DoSomething(m, _sender, _args);

общественная недействительным doSomething(материал Т,объект отправителя, DataReceivedEventArgs е)
{
Ящик для сообщений.Show("захваченные данные:" + e.Data);
Ящик для сообщений.Показать("мои данные:" + mt.Info);
}