Tom*_*ght 5 c# multithreading invoke visual-studio-2010
替代问题:为什么VS10如此热衷于抱怨Invoke?
在我不断追求让我的应用程序成为世界上最好的C#程序员的过程中,我认为线程是一件好事.
MSDN有一篇关于对控件进行线程安全调用的有用文章,但它(以及看似关于该主题的所有其他文章)倾斜地引用了一个名为Invoke的方法.有时甚至是BeginInvoke,我读过的也是首选.
如果我能让visual studio识别Invoke,那么这一切都会很棒.MSDN说它包含在System.Windows.Forms程序集中,但我已经"使用"它了.可以肯定的是,我也尝试过使用System.Threading,但无济于事.
我需要通过哪些环节才能调用工作?
调用在控制范围内。IEControl.Invoke();
无法直接调用 Invoke,因为System.Windows.Forms. Invoke 方法是一个控制成员。
这是我之前做的一个例子:
public delegate void AddListViewItemCallBack(ListView control, ListViewItem item);
public static void AddListViewItem(ListView control, ListViewItem item)
{
if (control.InvokeRequired)
{
AddListViewItemCallBack d = new AddListViewItemCallBack(AddListViewItem);
control.Invoke(d, new object[] { control, item });
}
else
{
control.Items.Add(item);
}
}
Run Code Online (Sandbox Code Playgroud)