所以我的主窗體有一個按鈕,當這個非常長的複製過程完成時,我可以啓用它。這個複製過程每10分鐘發生一次,並檢查更新等。我堅持如何讓進程通知主機完成複製。這是我到目前爲止有:如何在進程完成時更新UI表單?
public partial class mainForm : Form
{
....//initialize some stuff
private void TimerEventProcessor(object sender, EventArgs e)
{
....
copy.GetNewCopy();
}
}
class Copy
{
private bool IsCopyComplete;
....
public void GetNewCopy()
{
Process proc = new Process();
IsCopyComplete = false;
proc.EnableRaisingEvents = true;
proc.Exited += new EventHandler(myProcess_Exited);
proc.Start();
}
private void myProcess_Exited(object sender, System.EventArgs e)
{
IsCopyComplete = true;
// how to trigger mainform that process is complete?
}
}
考慮使用基於'Task'圖案:在異步4.5:在異步的API啓用進展和取消](HTTP: //blogs.msdn.com/b/dotnet/archive/2012/06/06/async-in-4-5-enabling-progress-and-cancellation-in-async-apis.aspx)。 – Noseratio