线程指定具有可变数量参数的委托
本文关键字:参数 线程 | 更新日期: 2023-09-27 18:15:35
我发现了一些关于带有可变数量参数的委托的帖子,但我太笨了,无法理解它们的含义以及它们如何适用于我的情况。
这是我的主要形式:
public delegate void Report( params Object[] args );
...
public partial class Main : Form
{
public ReportDelegate m_dlgtReport;
...
public Main()
{
InitializeComponent();
m_dlgtReport = new ReportDelegate( this.Report );
...
}
private void Report( params Object[] args )
{
if( args.Length > 0 )
{
string s1 = (string)args[ 0 ];
}
...
}
这是我在线程中调用它的方式:
m_Main.Invoke(
m_Main.m_dlgtReport,
new Object[] {
"text",
101,
true
} );
m_Main.Invoke(
m_Main.m_dlgtReport,
new Object[] {
"text"
} );
编译器选择了它,但是应用程序崩溃了。
有谁可以说得非常,非常慢,或者只是修复上面的代码,我将研究它?
谢谢大家,善良的人们。
你必须写:
this.Invoke(m_dlgtReport, (Object) new Object[] { "text", 101, true });
重要的部分是转换为(Object)。