我需要从BG Worker DoWork()中更新列表框。我创建了一个像这样的通用线程安全函数(从dll里面使用):
private delegate void AddListBoxItemDelegate(ListBox lst, object item);
public static void AddListBoxItem(ListBox lst, object item)
{
if (lst.InvokeRequired)
{
lst.Invoke(new AddListBoxItemDelegate(AddListBoxItem), item);
}
else
{
lst.Items.Add(item);
}
}
它不起作用,参数列表无效。
答案 0 :(得分:1)
您还需要传递ListBox lst
:
lst.Invoke(new AddListBoxItemDelegate(AddListBoxItem), lst, item);
...因为您的代理签名是AddListBoxItem(ListBox lst, object item)
。