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

一个涉及委托、事件的小疑点

2012-10-21 
一个涉及委托、事件的小问题。C# codepublic class DbHelper{//这个类里面有个InsertData(DataTable dt)方法

一个涉及委托、事件的小问题。

C# code
public class DbHelper{    //这个类里面有个InsertData(DataTable dt)方法,负责将DataTable中的数据一行一行的插入到数据库中    // Nested Types    public delegate void tpiinfo(int value, int max);    // Events    public event tpiinfo Evtpiinfo;    public void InsertData(DataTable dt)    {                int num = 0;        int count = dt.Rows.Count;        foreach (DataRow row in dt.Rows)        {            //插入代码 省略            num++;            if (this.Evtpiinfo != null)            {                this.Evtpiinfo.BeginInvoke(num, count, null, null);            }        }    }}

后台线程中调用InsertData执行数据插入。
这时候我想在UI的textbox1控件显示进度,比如"25/180"(当前插入了多少行/需要插入的总行数)。
DataTable dt; //
DbHelper这个类是我从一个Dll反编译来的,我知道把InsertData里面的代码拿出来可以很简单的实现上面的功能,但是,我就是想通过调用的方式来实现,怎么给Evtpiinfo事件注册方法。

[解决办法]
1.先修改事件,直接调用就行:
C# code
if (this.Evtpiinfo != null){    this.Evtpiinfo(num, count);}
[解决办法]

if (this.Evtpiinfo != null)
{
this.Evtpiinfo(num, count);
}
[解决办法]
ohkuy 正解

热点排行