c#文件上传下载之委托与事件

      在文件上传下载这个例子中的委托与事件,主要是用于窗体与类之间的交互,在主窗体中定义了FileInfo类的对象fileInfo,当开始上传的时候,主窗体的进度条要根据finleInfo读写的进度进行相应的变化,此处就用到了委托与事件。先看下过程:

  • 先在FileInfo类中定义委托,并用委托定义事件
public delegate void FileTranEventHandler(object sender, EventArgs e);//定义委托
public event FileTranEventHandler FileBuffer;//写完一块触发的事件
  • 当点击上传按钮时,当事件的处理方法绑定到上事件上
fileInfo.FileBuffer += new FileInfo.FileTranEventHandler(fileInfo_FileBuffer);                   //传输一块完成事件

      其中fileInfo_FileBuffer为窗体中进度条的变化方法。

  • 在异步写函数的回调函数中就可以触发此事件
OnFileBuffer(new EventArgs());
protected virtual void OnFileBuffer(EventArgs e)      
{
if(FileBuffer !=null)
FileBuffer(this,e);
}

      这样当写完一块的时候,就可以触发进度条事件。

 

 

posted @ 2012-08-18 10:26  单单的风  阅读(297)  评论(0编辑  收藏  举报