我的应用程序工作正常,但现在我想要自定义启动,所以我可以捕获任何错误,从一开始就添加我的日志记录等。
所以我使用了这个答案所示的方法What code controls the startup of a WPF application?
[STAThread]
public static void Main(string[] args) {
//include custom startup code here
var app = new MyApplication();//Application or a subclass thereof
var win = new MyWindow();//Window or a subclass thereof
app.Run(win); //do WPF init and start windows message pump.
}
只有一个例外情况正常 - SynchronizationContext.Current
为空。我需要它: - )
那么如何正确地进行自定义启动并具有同步上下文?
答案 0 :(得分:1)
不要创建自己的Main
方法。覆盖OnStartup
文件中的App.xaml.cs
方法:
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
var win = new MyWindow();
win.Show();
}
}
然后你将像往常一样获得SynchronizationContext
。
请勿忘记从StartupUri
文件的<Application>
根元素中删除App.xaml
属性。