adressmoeistranici
@adressmoeistranici
Делатель

Как в тесте передать в поток закрытый метод?

У меня имеется private bool Load(int i){} его нужно передать в тесте в поток или задачу, но как это сделать?
Я создаю methodinfo закрытого метода. могу в задачу передать метод без возврата и параметров так
task t = new Task((action)methodinfo.createdelegate(typeof(action)))
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
adressmoeistranici
@adressmoeistranici Автор вопроса
Делатель
Type t = typeof(..);
MethodInfo mi = t.GetMethod("***", BindingFlags.Instance | BindingFlags.NonPublic);
ParametrizedThreadStart parametrizedThreadStart = mew ParametrizedThreadStart ((object o)=>{
mi.Invoke((..)o, new object[] {0});
});

Thread t = new Thread(parametrizedThreadStart);
string str;
using (StringWriter wr = new StringWriter())
{
TextWriter s= Console.Out;
Console. SetOut(wr);
t.Start(..);
t.Join();
str = wr.ToString();
Console.Setout(s);
}
Assert.AreEquals(regex.ismatch(str, @****), true);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
petermzg
@petermzg
Самый лучший программист
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы