2010-07-27 2 views

ответ

4

Я подозреваемый это то, что имел в виду Джимми (как Control.Invoke не знаю, что делать с Action<double, string> :

public void InsertStockPrice(double value, string company) 
{ 
    if (InvokeRequired) 
    { 
     MethodInvoker invoker =() => InsertStockPrice(value, company); 
     Invoke(invoker); 
    } 
    else 
    { 
     // Do stuff 
    } 
} 

Если вы используете C# 2:

public void InsertStockPrice(double value, string company) 
{ 
    if (InvokeRequired) 
    { 
     MethodInvoker invoker = delegate { InsertStockPrice(value, company); } 
     Invoke(invoker); 
    } 
    else 
    { 
     // Do stuff 
    } 
} 

Обратите внимание, что я изменил случай ваших параметров, чтобы они соответствовали нормальным соглашениям .NET.

0

Я думаю, что вы имеете в виду, чтобы искать является:

Action<Type1,Type2> yourAction = (type1Var, type2Var) => 
    { 
     do stuff with type1Var and type2Var; 
    } 

yourAction(var1, var2); 
0

Если этот шаблон часто повторяется в коде, вы можете сделать небольшой вспомогательный метод как это один

static class UiExtensions 
{ 
    public static void SafeInvoke(this Control control, MethodInvoker method) 
    { 
     if (control.InvokeRequired) 
      control.Invoke(method); 
     else 
      method(); 
    } 
} 

this.SafeInvoke(() => { InsertStockPrices(value, company); }); 
Смежные вопросы