WPF 애플리케이션 부팅이 느린 문제 해결

방안 1, 시작 항목 변경


문제가 발생한 응용 프로그램의 시작 항목은 기본 설정입니다. 응용 프로그램을 보십시오.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();
}
프로젝트 시작 항목을 WPfApp1로 수정하는 StartUp 파일을 새로 만듭니다.StartUp, 이렇게 하면 이 문제를 해결할 수 있습니다. 코드는 다음과 같습니다.원시 방안과 비교하면 이 방안은 Windows Forms Application Base를 사용했는데 이 방안이 왜 시작이 느린 문제를 해결할 수 있는지 나는 아직 잘 모르겠다. 아마도 방안 2와 관련이 있을 것이다.

// 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();
    }
}

시나리오 2, 애플리케이션 확인을 위한 CAS 게시자 정책 비활성화


config 파일에 다음 설정 항목을 추가합니다.generatePublisher Evidence는 실행할 때 CAS에 게시자 증거를 만드는지 지정합니다. 기본값은true입니다. 즉, 게시자 증거를 만듭니다. 그러면 시간 초과와 서비스 시작 지연이 발생할 수 있습니다.따라서false로 설정하면 시작이 느린 문제도 해결할 수 있다.

<configuration>
    <runtime>
        <generatePublisherEvidence enabled="false"/>
    </runtime>
</configuration>
다음은 WPF 응용 프로그램의 부팅이 느린 문제 해결에 대한 상세한 내용입니다. WPF 응용 프로그램의 부팅이 느린 것에 대한 더 많은 자료는 저희의 기타 관련 기사를 주목하십시오!

좋은 웹페이지 즐겨찾기