listbox - 来自DoWork线程内的操作

时间:2014-12-01 10:21:23

标签: c#

我需要从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);
    }
}

它不起作用,参数列表无效。

1 个答案:

答案 0 :(得分:1)

您还需要传递ListBox lst

lst.Invoke(new AddListBoxItemDelegate(AddListBoxItem), lst, item);

...因为您的代理签名是AddListBoxItem(ListBox lst, object item)