ATL içinde nasıl bir apartman iş parçacığı havuza modeli (COM sunucusu

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

Özet

Microsoft Active Template Library (ATL) bir STA iş parçacığı havuzu işlem sunucusu dışında bir ATL, kendi iş parçacığı üzerinde çalışan oluşturulan her nesne tanımlamanızı sağlar. Bu makalenin "Daha fazla bilgi" bölümündeki adımları, bunun nasıl yapılacağını gösterir.

Daha fazla bilgi

Aşağıdaki adımlar, bir iş parçacığı havuzu nesnelerini oluşturmak için gereklidir:
  1. CExeModule veya CServiceModule sınıfından türetme yapıp yapmayacağınızı:
    CComAutoThreadModule<>
    					
    CExeModule : public CComAutoThreadModule<>
    					
  2. Bir STA havuzu iş parçacığı üzerinde çalışan her ATL sınıfında DECLARE_CLASSFACTORY_AUTO_THREAD() bildirin.
  3. Bir STA havuz iş parçacığı üzerinde
    DECLARE_NOT_AGGREGATABLE(CMyPooledObject)
    					
  4. Aranacak CExeModule::Unlock() veya CServiceModule::Unlock() yöntemi modülünün değiştirilmesi:
    CComAutoThreadModule<>::Unlock()
    						
    LONG CExeModule::Unlock()
    {
       LONG l = CComAutoThreadModule<>::Unlock();
       if (l == 0)
       {
         bActivity = true;
         SetEvent(hEventShutdown); // tell monitor that we transitioned to zero
       }
       return l;
    }
    						
Bu hizmet için yapılır, bir daha fazla adım yapmanız gerekir. Aşağıdaki kodu değiştirin:
inline void CServiceModule::Init(_ATL_OBJMAP_ENTRY* p, HINSTANCE h, UINT nServiceNameID, const GUID* plibid)
{
   CComModule::Init(p, h, plibid);
				
için:
inline void CServiceModule::Init(_ATL_OBJMAP_ENTRY* p, HINSTANCE h, UINT nServiceNameID, const GUID* plibid)
{
   CComAutoThreadModule<>::Init(p, h, plibid);
				
varsayılan olarak, işlemci başına dört iş parçacığı havuzu ATL oluşturur. Bu tWinMain()</a0> işlev çağrısında _Module.Init() çağrısında iş parçacığı sayısını isteğe bağlı ileri belirterek parametre değiştirebilirsiniz. Varsayılan olarak, iş parçacığının ayırıcısı CComSimpleThreadAllocator CComAutoThreadModule kullanır. CComSimpleThreadAllocator nesneleri iş parçacığı havuzu oluşturmak için bir basit hepsini birer kez deneme düzenini kullanır.

Referanslar

Daha fazla bilgi arama DECLARE_CLASS_FACTORY_AUTO_THREAD()CComAutoThreadModule ve Microsoft Developer's Network (MSDN) için.

Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
202128Düzeltme: ATL EXE sunucusu üzerinde CComAutoThreadModule dayalı kayıt üzerinde askıda kalabilir

Özellikler

Makale numarası: 244495 - Last Review: 26 Mayıs 2005 Perşembe - Gözden geçirme: 3.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ActiveX Template Library 3.0, Ne zaman ne ile kullanilir:
    • Microsoft Visual C++ 6.0 Enterprise Edition
    • Microsoft Visual C++ 6.0 Professional Edition
    • Microsoft Visual C++, 32-bit Learning Edition 6.0
Anahtar Kelimeler: 
kbmt kbarchitecture kbhowto kblocalsvr kbservice kbthread KB244495 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:244495

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