【发布时间】:2018-05-13 04:53:22
【问题描述】:
我有一个 Windows 窗体应用程序。
现在我想使用async 方法。
从 C# 7.1 开始,我可以使用 async Main 方法:
https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-7-1
但是,现在我的 STAThread 属性被忽略,我的应用程序在 MTA 中运行。这是设计使然,还是我可以强制我的应用再次以 STA 模式运行?
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
private static async Task Main(string[] args)
{
// returns MTA
Console.WriteLine("{0}", Thread.CurrentThread.ApartmentState);
}
【问题讨论】:
-
@Evk - 你会得到一个
ThreadStateException,因为根据定义,当前线程有already started。 -
是的,这没有意义。
标签: c# async-await sta mta