我很想知道 C# .net 中何时使用 STA/MTA?
using (ManualResetEventSlim mre = new ManualResetEventSlim(false))
{
Thread _STAThread = new Thread(new ThreadStart(() =>
{
globalComObject = new ComClass();
mre.Set();
try
{
Thread.CurrentThread.Join();
}
catch (ThreadAbortException)
{ }
}));
_STAThread.SetApartmentState(ApartmentState.STA);
_STAThread.IsBackground = true;
_STAThread.Start();
mre.Wait();
}
Run Code Online (Sandbox Code Playgroud)
小智 5
这个stackoverflow 答案会给你很多。另请阅读此页面和此 MSDN 页面。其要点是 STA 单元用于非线程安全的 COM 对象,而 MTA 可以以多线程方式使用线程安全的 COM 对象。