7 Ekim 2017 Cumartesi

STAThread Attribute

Giriş
Bu attribute genellikle COM bileşenleri ile haberleşmek için kullanılır. Açıklaması şöyle
This attribute allows the app to communicate with COM components. Such as system dialogs and such. A console app does not need this communication.
.Net normalde COM'u  ilklendirmez. Ancak sürükle bırak gibi işlemler altta COM kullandığı için bazen ihtiyaç olur. Bu durumda single-thread apartment modelini kullanır. Açıklaması şöyle.
The STAThreadAttribute marks a thread to use the Single-Threaded COM Apartment if COM is needed. By default, .NET won't initialize COM at all. It's only when COM is needed, like when a COM object or COM Control is created or when drag 'n' drop is needed, that COM is initialized. When that happens, .NET calls the underlying CoInitializeEx function, which takes a flag indicating whether to join the thread to a multi-threaded or single-threaded apartment.
Yani Winforms'ta Main metodu dışında başka bir yere konulduğunu görmedim.

Örnek
Şöyle yaparız.
[STAThread]
static void Main() 
{
  Application.EnableVisualStyles();
  Application.Run(new YourMainForm());
}

Hiç yorum yok:

Yorum Gönder