Как получить переменную в функции обратного вызова out
извините за название вопроса.
у меня есть проблема при использовании OPC API.
этот API объявляет делегат ReadCompleteEventHandler внутренне,
как-то по подписке.Read(), он передает ItemValueResult[] в Mydelegate.
ItemValueResult [] - это то, что мне нужно. Я могу использовать его внутри ReadCompleteCallback.
однако я превращаю его в форму окна, в другой класс, и тогда приходит беда.
class tester { public void Work() { ReadCompleteEventHandler Mydelegate = new ReadCompleteEventHandler(ReadCompleteCallback); subscription.Read(subscription.Items, 123, Mydelegate, out req); } static void ReadCompleteCallback(object nn,ItemValueResult[] mm) { MessageBox.Show(mm); //mm can only use in my Tester Class } }
Что я уже пробовал:
в классе тестировщиков:
public ItemValueResult[] resultinTesterClass; static void ReadCompleteCallback(object nn,ItemValueResult[]mm) { MessageBox.Show(mm); resultinTesterClass = mm; }
где в форме 1:
public ItemValueResult[] resultinFormClass private void ButtonRead_Click(object sender, EventArgs e) { obj.Work(); resultinFormClass=obj.resultinTesterClass; }
Я думаю, что это слишком косвенные и somethime resultinFormClass возвращать null.
Любой общепринятый способ решения.
Спасибо!