Control.BeginInvoke中的参数操作(

时间:2014-02-19 12:42:26

标签: c# action anonymous-function

对于这个noobish问题很抱歉,我的语法错了,我不明白为什么。

internal delegate void DoSomethingWithParam(MyObject localObjectToPassAsParam);

我用它:

myControl.BeginInvoke(new FinishAddingEntitiesToFolderDelegate(FunctionNameWithSignatureAsDelegate), localObjectToPassAsParam);

这将调用我的功能OK:

private void FunctionNameWithSignatureAsDelegate(MyObject localObjectToPassAsParam)
{
   Logger.Debug(localObjectToPassAsParam);
}

这很好用,当我尝试使用匿名委托时,它不会编译。

我想在哪里放参数?

myControl.BeginInvoke((Action<MyObject >)(() =>
{
   //I want to use my object here..
}));

1 个答案:

答案 0 :(得分:0)

这样试过吗?

myControl.BeginInvoke((localObjectToPassAsParam)=>
{
   // Your code here
}));

让localObjectToPassAsParam成为你对象的实例;-)请尝试告诉我,它是否在类型安全方面有效。