BILGI: Bir STA bileşeni gelen aramalar engelleme oluştur.

Makale çevirileri Makale çevirileri
Makale numarası: 291837 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Özet

Ne zaman bir engelleyici bir tek iş parçacıklı grup (STA) STA bekleyen örneğinizle apartman engelini kaldırmak, Canlı, tüm diğer COM örnekleri yaşayan, Bileşen Nesne Modeli (COM) nesnesi örneği çağrısından olun. Engelleyici bir bileşen çağrısından yapmanız gerekiyorsa, bileşeni, bir iş parçacığı modeli, boş olan bir engelleyici çağrısından yaptığınız önerilir.

Arama, bir uzun veya belirsiz dönüş için gereken süre, engelleme kabul edilir, örneğin son ucu için uzaktan yordam çağrısı (RPC) kullanan ağ çağrıları çağıran veya soketleri.

Buna ek olarak, Microsoft Visual Basic yalnızca STA uygulamaları ve bileşenleri, iş parçacığı modeli grubu ya da eksik olduğundan oluşturabilirsiniz. Bu nedenle, Visual Basic'te yazılmış bir bileşen engelleme görüşmeleri olmamasını.

Daha fazla bilgi

Bileşenler grubu, iş parçacığı modeli olan bir tek iş parçacıklı grupta (STA) live. Birden çok COM nesne örneğini aynı olan STA live Ancak, yalnızca bir iş parçacığı vardır (dolayısıyla adı), bu grup içindeki tüm COM nesnesi örnekleri Hizmetleri. Bu COM nesnesinin örneği birinden engelleme arama yaparsanız, bunları servis tek iş parçacığı engellendiğinden diğer COM nesnesi örnekleri starved.

Serbest iş parçacığı modeli olan bileşeninden engelleme çağrılarınızı. Bu bileşen, çok iş parçacıklı grupta (MTA) bulunur. Gibi STA, birden çok COM nesne örneğini bir MTA içinde Canlı. Ancak, the MTA, COM Nesne örneklerini hizmet veren birden çok iş parçacığı vardır. Sonuç olarak, bu COM nesne örneğini engelleme arama yaptığında, diğer iş parçacıkları diğer COM nesnesi örnekleri hizmet. Bu iş parçacığı bile engelleyici bir çağrı yaparsa hizmeti COM nesne örneğini kullanabilirsiniz. Bu nedenle, Canlı bileşenlerinizi MTA iş parçacığı güvenli yapmak için genel veri eşitlemesi nesneleri ile korumalısınız.

Bir STA bir COM nesnesi örneğinden, MTA içinde bulunur ve, engelleyici bir çağrı yapan bir COM nesnesi örneğinin bir yöntemini çağırdığında STA bileşeni engellemez. STA bileşen COM proxy üzerinden arama yaptığında, böylece diğer, apartman iş yapmak için proxy devre dışı veri MTA ve COM için pumps iletileri STA içinde gönderir olmasıdır. (Bir STA apartman iş windows iletileri aracılığıyla ulaştı.) Farklı BIR iş parçacığı MTA saplama üzerinden COM Çağrı seçer ve sırayla etkin iş parçacığı, bir "bekleme" durumunda geçirmeden engelleme aramayı yapan COM nesne örneğini, arama yöntemi sağlar. Engelleyici çağrı döndürdüğünde, COM yöntemi, çalışmasını tamamlandıktan ve bir windows iletiyle proxy'sine veri döndüren geri saplama, verileri döndürür. STA iş parçacığı, proxy, veriler <a0>windows</a0> iletisindeki seçer ve arama bileşenini geri gönderir.

Bir STA uzun engelleme çağrılarında başka bir yan etkisi RPC windows iletileri STA iletişim kuruyorsa ' dir. Arama engelleme birlikte, bu iş parçacığına ait olabilir herhangi diğer olası Wındows iletisiyle iletişimin yavaşlattığını.

Referanslar

COM iş parçacığı oluşturma ile ilgili ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
136885BILGI: OLE Threads iletileri gönderme olmalı
Dağıtılmış COM (DCOM) mimarisi hakkında daha fazla bilgi için aşağıdaki Microsoft Platform Software Development Kit'e (SDK) belgelerine bakın:
http://msdn.microsoft.com/en-us/library/ms809311.aspx

Özellikler

Makale numarası: 291837 - Last Review: 12 Temmuz 2001 Perşembe - Gözden geçirme: 1.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft COM+ 2.0 Standard Edition
Anahtar Kelimeler: 
kbmt kbclientserver kbinfo kbinprocsvr kbthread KB291837 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:291837

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com