大家好,现在我要实现一个下载功能,状态在WINFORM用PROCESS控件来显示。我的下载实现方法是在服务层实现的。当其中的一个文件下载完成后,我不可能返回到FORM里去操作PROCESS控件,这个时候我需要在服务城中能够找到这个控件,直接为其进度赋值,表现下载了多少。而后继续执行下面的下载循环程序。
看得不是很懂,你的服务层有窗口界面没有?
如果你只是想再其他层得到窗体的话,你大可以把窗体作为参数传给这个方法啊。在窗体调用的时候传入this就行了。
事件是用来干嘛的?
public class Downloader
{
public event EventHandler OnComplate;
public void Download(string url)
{
if(sucess)
{
OnComplate();
}
}
}
public Class App
{
void Main()
{
Downloader downloader = new Downloader();
download.OnComplate += new EventHander(downloader_OnComplate);
download.Download(url);
}
void downloader_OnComplate(){
MessageBox.Show("下载完成啦")
}
}
进度部分,一样的道理