【问题标题】:How to set STA apartment state for wpf with netcore / net5+? [duplicate]如何使用 net core / net5+ 为 wpf 设置 STA 公寓状态? [复制]
【发布时间】:2021-10-02 18:19:53
【问题描述】:

通常只需在 Main 方法上添加 [STAThread] 即可完成 - 但是对于新项目,就没有这些了吗?

当我尝试像这样设置自己的程序入口点时:

class Program
{
    [STAThread]
    static void Main(string[] args)
    {
        var application = new App();
        application.Run();
    }
}

它表示找到多个程序条目。所以是的 - 使用旧的 .net wpf 这可行,如何使用 netcore3/net5+ 呢?

【问题讨论】:

  • “使用旧的 .net wpf 这行得通” - 不清楚你的意思。 “旧” WPF 和 .NET Core 版本的 WPF 工作方式完全相同:为您生成程序入口点,如果您尝试自己显式创建入口点,则会出现错误。跨度>

标签: c# wpf


【解决方案1】:

您不需要 - 自动生成的 Main 方法已经有了。

您可以在相应的obj 目录中找到生成的文件。例如,我刚刚从WpfSta 目录运行dotnet new wpf,这是作为obj/Debug/net5.0-windows/App.g.cs 的一部分生成的:

/// <summary>
/// Application Entry Point.
/// </summary>
[System.STAThreadAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "5.0.6.0")]
public static void Main() {
    WpfSta.App app = new WpfSta.App();
    app.InitializeComponent();
    app.Run();
}

可以编写自己的Main 方法,然后使用项目文件中的StartupObject 属性来指定入口点。但如果只是为了添加STAThread,则不需要。

【讨论】:

    猜你喜欢
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 2018-06-03
    • 2019-04-28
    • 2017-11-17
    相关资源
    最近更新 更多