我有一个带有一个窗口的WPF应用程序。该窗口有一个图像和一个文本块。应用程序接受命令行参数,该参数是要装入的ISO的名称。然后,如果需要,它会更改屏幕res,将应用程序加载到虚拟CD上并等待该进程终止。在它卸载ISO并且屏幕res恢复到原始状态之后。当所有这一切发生时,会向用户显示一条消息,告诉他们在过程中的位置。
我正在使用文本块向用户显示进度文本,整个过程将在以下事件中启动。
private void Window_ContentRendered(object sender, EventArgs e)
{
txtMessage.Text = ConfigurationManager.AppSettings.Get("MountISO");
//Call routine to mount ISO
txtMessage.Text = ConfigurationManager.AppSettings.Get("SettingResolution");
// call routine to set resolution
.
.
.
.etc
}
然而,窗口按预期加载,但文本块中不显示任何文本。
我确实在Window_Loaded
事件中有代码,但窗口保持最小化,直到处理完成。
我显然是以错误的方式解决这个问题,但找不到任何可以告诉我哪里出错了。
答案 0 :(得分:1)
异步编程可能就是你想要做的。在C#中搜索StackOverflow,例如Task
,或者阅读Task class上的Microsoft文档。
ContentRendered
事件不是放置这类事物的地方。通常它会像你在第一时那样Window_Loaded
,但当然应用程序会被你正在执行的持久行动阻止。