我在这里很困惑,不确定框架(4.0)是否支持我迄今为止在网上找到的一些答案。
我有以下结构
public class Form1()
{
public int GenerateID(OtherThreadObj oto)
{
int result;
if (this.InvokeRequired)
{
return (int)this.Invoke((MethodInvoker)delegate { GenerateIDSafe(oto); });
// now this doesn't work obviously. I was looking at .begininvoke, end, etc and got really lost there
}
else
{
return GenerateIDSafe(oto);
}
}
private int GenerateIDSafe(OtherThreadObj oto)
{
return oto.id.ToSuperID(); // Assume ToSuperID some extension method.
}
}
现在的想法是从另一个线程调用生成 ID 并获取该返回值。
public class OtherThreadObj
{
private Form1 parentform;
private int GetSuperID()
{
return parentform.GenerateID(this);
}
}
很明显,上述内容并不好,因为我没有在.Invoke 上得到正确的回报。我完全不知道如何正确地做到这一点。