欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > WPF依赖注入IHostApplicationLifetime关闭程序

WPF依赖注入IHostApplicationLifetime关闭程序

2025/4/18 20:31:17 来源:https://blog.csdn.net/wqq1027/article/details/147288379  浏览:    关键词:WPF依赖注入IHostApplicationLifetime关闭程序

WPF依赖注入IHostApplicationLifetime关闭程序

使用Application.Current.Shutdown();退出会报异常 应该使用 app.Dispatcher.InvokeShutdown();

Application.Current.Shutdown();
 app.Dispatcher.InvokeShutdown();
    static App app = new();[STAThread]public static void Main(){_host.Start();using (var scope = _host.Services.CreateScope()){var services = scope.ServiceProvider;var context = services.GetRequiredService<MyContext>();context.Database.EnsureCreated();var appLifetime = services.GetRequiredService<IHostApplicationLifetime>();appLifetime.ApplicationStopping.Register(OnStopping);// DbInitializer.Initialize(context);}app.InitializeComponent();app.MainWindow = _host.Services.GetRequiredService<MainWindow>();app.MainWindow.Visibility = Visibility.Visible;app.Run();}private static void OnStopping(){app.Dispatcher.InvokeShutdown();// Application.Current.Shutdown();// 会报异常}
crit: Microsoft.Extensions.Hosting.Internal.ApplicationLifetime[7]An error occurred stopping the applicationSystem.AggregateException: One or more errors occurred. (调用线程无法访问此对象,因为另一个线程拥有该对象。)---> System.InvalidOperationException: 调用线程无法访问此对象,因为另一个线程拥有该对象。at System.Windows.Threading.Dispatcher.<VerifyAccess>g__ThrowVerifyAccess|7_0()at System.Windows.Application.CriticalShutdown(Int32 exitCode)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词