çoklu kullanım: STAThread ve STAThread MSDN makalesinde itibaren
bir uygulama için COM iş parçacığı modeli tek iş parçacıklı grup (STA) olduğunu gösterir.
(Referans için, bu the entire article bu.)
geçip üstümle Tek parçacıklı ... tamam. Ayrıca, uygulamanız COM birlikte kullanılmadığı sürece, bu öznitelik aslında hiçbir şey yapmaz. Peki tam olarak ne yapıyor ve çok iş parçacıklı uygulamaları nasıl etkiler? Çoklu iş parçacıklı uygulamalar (yalnızca threadpools ve benzeri değil) asenkron yöntem çağrıları kullanan Timer
s kullanan herhangi bir şeyi içerenler varsa, 'güvenli olmak için' olsa bile, MTAThread'i kullanmalı mıdır? STAThread ve MTAThread aslında ne yapar?
Bu çok basitleştirilmiş. Çok iş parçacıklı nesneler herhangi bir iş parçacığında çalışabilir. Daire dişli nesneler, yalnızca oluşturuldukları dairede çalışabilirler. –
Bir STA iş parçacığında bir MTA nesnesinden bir MTA nesnesine yapılan bir çağrı, MTA iş parçacığına (MTA nesnesi, serbest parçacıklı işleyiciyi uygulamadığı sürece) sabitlenir. . Dediğim gibi, detaylar karmaşıklaşabilir. (COM takımında birkaç yıl çalıştım * grin *) – Bruce
Bazen doğrudan COM kullanmıyor olsanız bile bunun farkında olmanız gerekir. Bir iş parçacığı, herhangi bir grafik penceresi görüntülüyorsa Tek Yivli Daire modelini kullanmalıdır. Bu nedenle, Windows form uygulamasında [STAThread], her zaman ana yöntemin üstünde görüntülenir. –