欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

WPF应用启动慢的问题解决

程序员文章站 2022-06-09 19:10:13
方案一,更改启动项出问题应用的启动项是使用的默认设置,查看app.g.cs文件,可以看到自动生成的main入口函数,如下:[system.stathreadattribute()][system.di...

方案一,更改启动项

出问题应用的启动项是使用的默认设置,查看app.g.cs文件,可以看到自动生成的main入口函数,如下:

[system.stathreadattribute()]
[system.diagnostics.debuggernonusercodeattribute()]
[system.codedom.compiler.generatedcodeattribute("presentationbuildtasks", "4.0.0.0")]
public static void main()
{
    wpfapp1.app app = new wpfapp1.app();
    app.initializecomponent();
    app.run();
}

新建一个startup文件,将项目启动项修改为wpfapp1.startup,这样就可以解决该问题,代码如下。与原始方案对比,该方案使用了windowsformsapplicationbase,该方案为什么可以解决启动慢的问题,我还没搞清楚,或许和方案二有关。

// startup.cs
class startup : application
{
    [stathread]
    public static void main(string[] args)
    {
        var startup = new mystartup();
        startup.run(args);
    }
}

// 需要添加对microsoft.visualbasic的引用
class mystartup : windowsformsapplicationbase
{
    protected override bool onstartup(startupeventargs eventargs)
    {
        app app = new app();
        app.run();
        return false;
    }
}

// app.xaml.cs 删除app.xaml中的startupuri="mainwindow.xaml"
public partial class app : application
{
    public app()
    {
        var win = new mainwindow();
        win.show();
    }
}

方案二,禁用检查应用程序的cas发布者策略

在config文件中添加如下配置项。generatepublisherevidence指定运行时是否为cas创建发布者证据,其默认值为true,即创建发布者证据,这样可能会导致超时和服务启动延迟。因此将其置为false,该方法也可以解决启动慢的问题。

<configuration>
    <runtime>
        <generatepublisherevidence enabled="false"/>
    </runtime>
</configuration>

以上就是wpf应用启动慢的问题解决的详细内容,更多关于wpf应用启动慢的资料请关注其它相关文章!

相关标签: wpf 应用启动慢