"Method Name Expected" 使用调用时出现 C# 错误
"Method Name Expected" error C# when using invoke
我正在尝试在 Win Forms 应用程序中获取 return 信息到 "JobViews" 的线程。但是在调用调用时我收到 "Method Name Expected" 错误。
这是我当前的代码,
public void initJobListViews_DoWork(string IP, int Port)
{
initJobListViews();
bool JobString = fillJobViews(IP, Port);
}
public void SocketClientReturn(string IP, int Port)
{
if (this.InvokeRequired)
{
this.Invoke(new SocketClientReturnDelegate(initJobListViews_DoWork(IP, Port)));
/// this.Invoke(new SocketClientReturnDelegate(initJobListViews_DoWork(IP, Port),null));
// Also complains
}
else
{
initJobListViews_DoWork(IP, Port);
}
}
private delegate void SocketClientReturnDelegate();
我也尝试过以下方法,
public void initJobListViews_DoWork(string IP, int Port)
{
initJobListViews();
bool JobString = fillJobViews(IP, Port);
}
public void SocketClientReturn(string IP, int Port)
{
if (this.InvokeRequired)
{
this.Invoke(new SocketClientReturnDelegate(initJobListViews_DoWork));
}
else
{
initJobListViews_DoWork(IP, Port);
}
}
private delegate void SocketClientReturnDelegate(string IP, int Port);
这不会导致编译期间出现任何问题,但程序会抛出 "TargetParameterCountException" 而 运行.
我以前用过这个技术没有问题,我有点困惑为什么这次失败了??
您的 Invoke
正在等待委托,而您正在调用该函数来代替,
this.Invoke(new SocketClientReturnDelegate(initJobListViews_DoWork),new object[]{IP, Port});
我正在尝试在 Win Forms 应用程序中获取 return 信息到 "JobViews" 的线程。但是在调用调用时我收到 "Method Name Expected" 错误。
这是我当前的代码,
public void initJobListViews_DoWork(string IP, int Port)
{
initJobListViews();
bool JobString = fillJobViews(IP, Port);
}
public void SocketClientReturn(string IP, int Port)
{
if (this.InvokeRequired)
{
this.Invoke(new SocketClientReturnDelegate(initJobListViews_DoWork(IP, Port)));
/// this.Invoke(new SocketClientReturnDelegate(initJobListViews_DoWork(IP, Port),null));
// Also complains
}
else
{
initJobListViews_DoWork(IP, Port);
}
}
private delegate void SocketClientReturnDelegate();
我也尝试过以下方法,
public void initJobListViews_DoWork(string IP, int Port)
{
initJobListViews();
bool JobString = fillJobViews(IP, Port);
}
public void SocketClientReturn(string IP, int Port)
{
if (this.InvokeRequired)
{
this.Invoke(new SocketClientReturnDelegate(initJobListViews_DoWork));
}
else
{
initJobListViews_DoWork(IP, Port);
}
}
private delegate void SocketClientReturnDelegate(string IP, int Port);
这不会导致编译期间出现任何问题,但程序会抛出 "TargetParameterCountException" 而 运行.
我以前用过这个技术没有问题,我有点困惑为什么这次失败了??
您的 Invoke
正在等待委托,而您正在调用该函数来代替,
this.Invoke(new SocketClientReturnDelegate(initJobListViews_DoWork),new object[]{IP, Port});