我有一个Windows表单应用程序。
现在我想要使用异步方法。
自从C# 7.1以来,我可以使用async Main
方法:
https://learn.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);
}
ThreadStateException
异常,因为根据定义,当前线程已经启动。请参考:https://msdn.microsoft.com/zh-cn/library/system.threading.thread.setapartmentstate(v=vs.110).aspx。 - Damien_The_Unbeliever