public class UploadEventArgs : EventArgs//作为事件的参数,必须派生自EventArgs基类
{
public UploadEventArgs(int percent)
{
this.Percent = percent;
}
public int Percent { get; set; }
}
public class Upload
{
public event EventHandler<UploadEventArgs> Uploading;//定义事件,上传中实时通知上传进度
public int Percent{get;private set;}
public Upload()
{
Percent = 0;
}
public void DoUpload()
{
UploadEventArgs ev=new UploadEventArgs(0);
while(Percent<100)
Percent+=15;
if (Percent > 100) Percent = 100;
ev.Percent=Percent;
Uploading(this, ev);
}
}
}
public class FileToUpload
{
private string fileName;
public FileToUpload(string filename)
{
this.fileName = filename;
}
public void GetStatus(object sender, UploadEventArgs e)
{
Console.WriteLine("file:{0},UploadPercent:{1}", fileName, e.Percent);
}
}
public class EventTest
{
public void test()
{
var upload = new Upload();
var file = new FileToUpload("001.dox");
upload.Uploading += file.GetStatus;
upload.DoUpload();
}
}
{
public UploadEventArgs(int percent)
{
this.Percent = percent;
}
public int Percent { get; set; }
}
public class Upload
{
public event EventHandler<UploadEventArgs> Uploading;//定义事件,上传中实时通知上传进度
public int Percent{get;private set;}
public Upload()
{
Percent = 0;
}
public void DoUpload()
{
UploadEventArgs ev=new UploadEventArgs(0);
while(Percent<100)
{
//上传文件代码简单,就不写出了
System.Threading.Thread.Sleep(1000);Percent+=15;
if (Percent > 100) Percent = 100;
ev.Percent=Percent;
Uploading(this, ev);
}
}
}
public class FileToUpload
{
private string fileName;
public FileToUpload(string filename)
{
this.fileName = filename;
}
public void GetStatus(object sender, UploadEventArgs e)
{
Console.WriteLine("file:{0},UploadPercent:{1}", fileName, e.Percent);
}
}
public class EventTest
{
public void test()
{
var upload = new Upload();
var file = new FileToUpload("001.dox");
upload.Uploading += file.GetStatus;
upload.DoUpload();
}
}