C# 能实现一种效果吗
来源:百度知道 编辑:UC知道 时间:2024/06/11 02:53:14
后台操作的时候能弹出个窗口告诉你后台现在在干什么。
比如360的打补丁功能,一边下一边打。
请问C#能实现这种效果吗?
完全可以,在弹出来的窗体中为后台的操作另起一个线程,这个线程通过事件向窗体发送进度即可。
弹出来的窗体:
private void FormWork_Load(object sender, EventArgs e)
{
Worker wk = new Worker();
wk.reportProgress += new ProgressEventHandler(this.RefreshProgress);
System.Threading.Thread th = new System.Threading.Thread(new System.Threading.ThreadStart(wk.DoWork));
th.Start();
}
private void RefreshProgress(ProgressEventArgs e)
{
this.lblProgress.Text = "已经完成 "+e.Precent.ToString()+ "%。";
}
在其他的地方:
public class ProgressEventArgs
{
public int Precent;
}
delegate void ProgressEventHandler(ProgressEventArgs e);
public class Worker
{
public ProgressEventHandler reportProgress;
public void DoWork()
{
// 前半段工作完成后