首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET Framework >

求助帖,关于重载的方法与委托不匹配,怎么解决?代码如下

2011-12-12 
求助帖,关于重载的方法与委托不匹配,如何解决???代码如下:C# code#region 调用后台线程执行打印操作 begin

求助帖,关于重载的方法与委托不匹配,如何解决???代码如下:

C# code
            #region 调用后台线程执行打印操作 begin            Thread threadPrint = [color=#FF0000]new Thread(new ParameterizedThreadStart(PrintBarCode));[/color]            threadPrint.IsBackground = true;            threadPrint.Start(this.dgvPiLiang);            //threadPrint.Join();            #endregion 调用后台线程执行打印操作end


方法PrintBarCode的声明如下
C# code
 private void PrintBarCode(DataGridView dgvTemp)        {            if (dgvTemp.InvokeRequired)            {                PrintBarCodeDeleg printDeleg = new PrintBarCodeDeleg(PrintBarCode);                dgvTemp.BeginInvoke(printDeleg, dgvTemp);            }            else            {              .              .              .             }


请问是方法声明的不对,还是创建的线程的方法不对???

[解决办法]
PrintBarCode(DataGridView dgvTemp)
改为
PrintBarCode(object dgvTemp)
{
DataGridView dgv=dgvTemp as DataGridView;
......
}

[解决办法]
你看ParameterizedThreadStart委托定义参数是object类型的。
public delegate void ParameterizedThreadStart (
Object obj
)


DataGridView dgv=dgvTemp as DataGridView;不会影响数据的
[解决办法]
C# code
Thread threadPrint = new Thread(new ParameterizedThreadStart(PrintBarCode));threadPrint.IsBackground = true;            threadPrint.Start(this.dgvPiLiang);=>Thread threadPrint = new Thread(_=>{PrintBarCode(this.dgvPiLiang);});threadPrint.IsBackground = true;threadPrint.Start(); 

热点排行