Одна из ваших проблем заключается в том, что компилятор не может определить типы параметров вашей лямды. И даже для данной сигнатуры параметра существует бесконечно много потенциальных типов делегатов. Так что вам нужно явно указать тип. Action<...>
и Func<...>
являются типичными кандидатами, если вас не интересуют имена параметров.
Я думаю, что это должно работать:
`someListBox.Invoke((Action<int>)((i) => {listviewResults.Items.Add(i); }), new object[] {item});`
Или в переработанном виде, чтобы избежать повторения:
Action<int> myAction=(i) => listviewResults.Items.Add(i);
if (someListBox.InvokeRequired)
{
someListBox.Invoke( myAction, new object[] {item});
}
else
myAction(item);
И я не вижу причин, по которым вы бы вообще хотели иметь i
в качестве параметра:
Action myAction = () => listviewResults.Items.Add(item);
if (someListBox.InvokeRequired)
{
someListBox.Invoke( myAction );
}
else
myAction();