2011-11-07 10 views
3

私はSTA/MTAがC#.netで使用されていることを知りたいのですか?いつスレッドをApartmentState.STAに設定する必要がありますか?

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

** ** ** http://stackoverflow.com/questions/127188/could-you-explain-sta-and-mta – pjvds

答えて

4

STA/MTA COMオブジェクトと相互運用するときに使用します。

4

このstackoverflow answerはあなたに十分なものを与えます。 また、thisthis MSDN pageも読んでください。 STAアパートメントはスレッドセーフではないCOMオブジェクトに使用され、MTAはスレッドセーフなCOMオブジェクトとしてマルチスレッドで使用できます。

関連する問題