我有这个代码。
MethodInfo method = obj.GetType().GetMethod("Run");
Task task = Task.Factory.StartNew((Action)method.Invoke(obj, null));
我可以确认obj和method有效。我看到函数Run也被调用了。但是运行方法完成后,出现以下异常:
Message = "Value cannot be null.\r\nParameter name: action"
由于函数Run不返回/不接受参数,我无法确定在此引用了哪个“ action”参数。如果有帮助,这是Run方法:
public void Run()
{
Console.WriteLine("I'm here");
}
答案 0 :(得分:0)
这不是您调用的参数,不能为null,它是Task.Factory.StartNew的参数。
只需:
Task.Run(() => method.Invoke(obj, null));