当前位置: 代码迷 >> .NET Framework >> 求助帖,关于重载的方法与委托不匹配,怎么解决?代码如下
  详细解决方案

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

热度:100   发布时间:2016-05-02 01:05:17.0
求助帖,关于重载的方法与委托不匹配,如何解决???代码如下:
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();
  相关解决方案