我有一个带有PowerShell自定义主机的WPF应用程序,该主机运行存储在嵌入式资源中的脚本。加载后,用户单击执行按钮,脚本为Invoked但我看到以下错误:
由于用户中断了命令
,命令执行停止用户(即我)没有做任何事情来中断脚本,所以我猜这是某种线程问题。
应用程序还接受命令行参数,该参数指示脚本立即执行。当我第一次添加此功能时,脚本运行完美,但我没有看到WPF ui,直到完成,所以我将以下内容添加到主窗口视图模型的启动中:
var bgWork = new BackgroundWorker();
bgWork.DoWork += (s,e) => { };
bgWork.RunWorkerCompleted += (s,a) =>
{
var app = (Application.Current as App);
if (app.ExecuteImmediate && StartCommand.CanExecute(null))
StartCommand.Execute(null);
};
bgWork.RunWorkerAsync();
BackgroundWorker在UI线程上运行Completed代码。这只是我经常使用的一个小技巧,它主要工作正常。
所以,我知道一个很长的问题,但是有没有人知道我做错了什么?
作为一个方面或相关问题,我还在运行进程时通过数据绑定更新ui时遇到问题。例如,我在状态栏中有一个状态指示器,可以在IDLE和BUSY之间切换,但这似乎永远不会改变,直到为时已晚。绑定工作正常,但就像我需要调用旧的VB DoEvents()一样。
干杯
答案 0 :(得分:0)
咖啡和调试几分钟后解决了这个问题。
有人因为我没有完全实现PromptForChoice方法。
但是,我仍然遇到更新绑定的问题。