你可以告诉初学者为什么这个小的WPF应用程序在WorkflowTerminated事件触发后没有按预期关闭?使用的工作流程立即终止.(使用WPF应用程序,.Net Framework 3.5)
public partial class MainWindow : Window
{
private WorkflowRuntime wfRuntime = new WorkflowRuntime();
public MainWindow()
{
InitializeComponent();
wfRuntime.WorkflowTerminated += (se, ev) => this.Close(); // this doesn't close the window
wfRuntime.WorkflowCompleted += (se, ev) => this.Close();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
WorkflowInstance launcherWorkflow = wfRuntime.CreateWorkflow(typeof(InstallerWorkflow));
launcherWorkflow.Start();
}
}
Run Code Online (Sandbox Code Playgroud)
可能是因为回调是在另一个线程上.一个基本的解决方法是使用完全终止应用程序Environment.Exit(1);
要在UI线程上调用close函数,您应该使用:
wfRuntime.WorkflowTerminated += (se, ev) => {
// call back to the window to do the UI-manipulation
this.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate()
{
this.Close();
}));
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3156 次 |
| 最近记录: |