Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu arabirim, iş parçacığı havuzunu yapılandırma yöntemleri sağlar.
Önemli
Bu sınıf ve üyeleri Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.
Sözdizimi
__interface
__declspec(uuid("B1F64757-6E88-4fa2-8886-7848B0D7E660")) IThreadPoolConfig : public IUnknown
Üyeler
Yöntemler
| Veri Akışı Adı | Açıklama |
|---|---|
| GetSize | Havuzdaki iş parçacığı sayısını almak için bu yöntemi çağırın. |
| GetTimeout | İş parçacığı havuzunun bir iş parçacığının kapatılmasını bekleyeceği milisaniye cinsinden maksimum süreyi almak için bu yöntemi çağırın. |
| SetSize | Havuzdaki iş parçacığı sayısını ayarlamak için bu yöntemi çağırın. |
| SetTimeout | İş parçacığı havuzunun bir iş parçacığının kapatılmasını bekleyeceği milisaniye cinsinden maksimum süreyi ayarlamak için bu yöntemi çağırın. |
Açıklamalar
Bu arabirim CThreadPool tarafından uygulanır.
Gereksinimler
Üst bilgi: atlutil.h
IThreadPoolConfig::GetSize
Havuzdaki iş parçacığı sayısını almak için bu yöntemi çağırın.
STDMETHOD(GetSize)(int* pnNumThreads);
Parametreler
pnNumThreads
[out] Başarılı olduğunda havuzdaki iş parçacığı sayısını alan değişkenin adresi.
Dönüş Değeri
Başarıda S_OK veya hatada HRESULT hatası döndürür.
Örnek
HRESULT DoPoolOperations(IThreadPoolConfig* pPool, int nSize)
{
int nCurrSize = 0;
HRESULT hr = pPool->GetSize(&nCurrSize);
if (SUCCEEDED(hr))
{
printf_s("Current pool size: %d\n", nCurrSize);
hr = pPool->SetSize(nSize);
if (SUCCEEDED(hr))
{
printf_s("New pool size : %d\n", nSize);
DWORD dwTimeout = 0;
hr = pPool->GetTimeout(&dwTimeout);
if (SUCCEEDED(hr))
{
printf_s("Current pool timeout: %u\n", dwTimeout);
// Increase timeout by 10 seconds.
dwTimeout += 10 * 1000;
hr = pPool->SetTimeout(dwTimeout);
if (SUCCEEDED(hr))
{
printf_s("New pool timeout: %u\n", dwTimeout);
}
else
{
printf_s("Failed to set pool timeout: 0x%08X\n", hr);
}
}
else
{
printf_s("Failed to get pool timeout: 0x%08X\n", hr);
}
}
else
{
printf_s("Failed to resize pool: 0x%08X\n", hr);
}
}
else
{
printf_s("Failed to get pool size: 0x%08x\n", hr);
}
return hr;
}
IThreadPoolConfig::GetTimeout
İş parçacığı havuzunun bir iş parçacığının kapatılmasını bekleyeceği milisaniye cinsinden maksimum süreyi almak için bu yöntemi çağırın.
STDMETHOD(GetTimeout)(DWORD* pdwMaxWait);
Parametreler
pdwMaxWait
[out] Başarı durumunda iş parçacığı havuzunun bir iş parçacığının kapatılmasını bekleyeceği en uzun süreyi milisaniye cinsinden alan değişkenin adresi.
Dönüş Değeri
Başarıda S_OK veya hatada HRESULT hatası döndürür.
Örnek
Bkz. IThreadPoolConfig::GetSize.
IThreadPoolConfig::SetSize
Havuzdaki iş parçacığı sayısını ayarlamak için bu yöntemi çağırın.
STDMETHOD(SetSize)int nNumThreads);
Parametreler
nNumThreads
Havuzdaki istenen iş parçacığı sayısı.
nNumThreads negatifse, toplam iş parçacığı sayısını elde etmek için mutlak değeri makinedeki işlemci sayısıyla çarpılır.
nNumThreads sıfırsa, ATLS_DEFAULT_THREADSPERPROC toplam iş parçacığı sayısını elde etmek için makinedeki işlemci sayısıyla çarpılır.
Dönüş Değeri
Başarıda S_OK veya hatada HRESULT hatası döndürür.
Örnek
Bkz. IThreadPoolConfig::GetSize.
IThreadPoolConfig::SetTimeout
İş parçacığı havuzunun bir iş parçacığının kapatılmasını bekleyeceği milisaniye cinsinden maksimum süreyi ayarlamak için bu yöntemi çağırın.
STDMETHOD(SetTimeout)(DWORD dwMaxWait);
Parametreler
dwMaxWait
İş parçacığı havuzunun bir iş parçacığının kapatılmasını bekleyeceği milisaniye cinsinden istenen en uzun süre.
Dönüş Değeri
Başarıda S_OK veya hatada HRESULT hatası döndürür.
Örnek
Bkz. IThreadPoolConfig::GetSize.