Aracılığıyla paylaş


CWinThread Sınıf

Bir uygulama içindeki yürütme iş parçacığını temsil eder.

Sözdizimi

class CWinThread : public CCmdTarget

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CWinThread::CWinThread Bir CWinThread nesne oluşturur.

Genel Yöntemler

Veri Akışı Adı Açıklama
CWinThread::CreateThread Bir CWinThread nesnenin yürütülmesini başlatır.
CWinThread::ExitInstance İş parçacığınız sonlandırıldığında temizlemek için geçersiz kılın.
CWinThread::GetMainWnd İş parçacığının ana penceresine bir işaretçi alır.
CWinThread::GetThreadPriority Geçerli iş parçacığının önceliğini alır.
CWinThread::InitInstance İş parçacığı örneği başlatma gerçekleştirmek için geçersiz kılın.
CWinThread::IsIdleMessage Özel iletileri denetler.
CWinThread::OnIdle İş parçacığına özgü boşta kalma süresi işlemesi gerçekleştirmek için geçersiz kılın.
CWinThread::PostThreadMessage Başka CWinThread bir nesneye ileti postalar.
CWinThread::PreTranslateMessage İletileri Windows işlevlerine TranslateMessage ve DispatchMessage'a göndermeden önce filtreler.
CWinThread::ProcessMessageFilter Belirli iletileri uygulamaya ulaşmadan önce durdurur.
CWinThread::ProcessWndProcException İş parçacığının iletisi ve komut işleyicileri tarafından oluşan tüm işlenmeyen özel durumları durdurur.
CWinThread::PumpMessage İş parçacığının ileti döngüsünü içerir.
CWinThread::ResumeThread bir iş parçacığının askıya alma sayısını azaltma.
CWinThread::Run İleti pompalı iş parçacıkları için kontrol işlevi. Varsayılan ileti döngüsünü özelleştirmek için geçersiz kılın.
CWinThread::SetThreadPriority Geçerli iş parçacığının önceliğini ayarlar.
CWinThread::SuspendThread bir iş parçacığının askıya alma sayısını artırır.

Ortak İşleçler

Veri Akışı Adı Açıklama
CWinThread::operator HANDLE Nesnenin tutamacını CWinThread alır.

Ortak Veri Üyeleri

Veri Akışı Adı Açıklama
CWinThread::m_bAutoDelete İş parçacığı sonlandırma sırasında nesnenin yok edilip edilmeyeceğini belirtir.
CWinThread::m_hThread Geçerli iş parçacığı için tanıtıcı.
CWinThread::m_nThreadID Geçerli iş parçacığının kimliği.
CWinThread::m_pActiveWnd Bir OLE sunucusu yerinde etkin olduğunda kapsayıcı uygulamasının ana penceresine yönelik işaretçi.
CWinThread::m_pMainWnd Uygulamanın ana penceresine bir işaretçi tutar.

Açıklamalar

Yürütmenin ana iş parçacığı genellikle öğesinden CWinApptüretilen bir nesne tarafından sağlanır ve CWinApp öğesinden CWinThreadtüretilir. Ek CWinThread nesneler, belirli bir uygulama içinde birden çok iş parçacığına izin verir.

Destekleyen iki genel iş parçacığı CWinThread türü vardır: çalışan iş parçacıkları ve kullanıcı arabirimi iş parçacıkları. Çalışan iş parçacıklarının ileti pompası yoktur: örneğin, elektronik tablo uygulamasında arka plan hesaplamaları yapan bir iş parçacığı. Kullanıcı arabirimi iş parçacıklarının bir ileti pompası ve sistemden alınan işleme iletileri vardır. CWinApp ve ondan türetilen sınıflar, kullanıcı arabirimi iş parçacıklarına örnektir. Diğer kullanıcı arabirimi iş parçacıkları da doğrudan öğesinden CWinThreadtüretilebilir.

Sınıfın CWinThread nesneleri genellikle iş parçacığı süresi boyunca bulunur. Bu davranışı değiştirmek istiyorsanız olarak ayarlayın m_bAutoDelete FALSE.

sınıfı CWinThread , kodunuzu ve MFC'nizi iş parçacığını tamamen güvenli hale getirmek için gereklidir. Çerçeve tarafından iş parçacığına özgü bilgileri korumak için kullanılan iş parçacığı yerel verileri nesneler tarafından CWinThread yönetilir. İş parçacığı yerel verilerini işlemek için bu CWinThread bağımlılık nedeniyle, MFC kullanan tüm iş parçacıkları MFC tarafından oluşturulmalıdır. Örneğin, çalışma zamanı işlevi _beginthread_beginthreadex tarafından oluşturulan bir iş parçacığı MFC API'lerini kullanamaz.

İş parçacığı oluşturmak için çağrısında bulunur AfxBeginThread. Çalışan mı yoksa kullanıcı arabirimi iş parçacığı mı istediğinize bağlı olarak iki form vardır. Kullanıcı arabirimi iş parçacığı istiyorsanız, türetilmiş sınıfınızın CWinThreadişaretçisine CRuntimeClass geçinAfxBeginThread. Çalışan iş parçacığı oluşturmak istiyorsanız, denetim işlevine AfxBeginThread bir işaretçiye ve denetim işlevine parametresine geçin. Hem çalışan iş parçacıkları hem de kullanıcı arabirimi iş parçacıkları için önceliği, yığın boyutunu, oluşturma bayraklarını ve güvenlik özniteliklerini değiştiren isteğe bağlı parametreler belirtebilirsiniz. AfxBeginThread yeni CWinThread nesnenize bir işaretçi döndürür.

çağırmak AfxBeginThreadyerine - türetilmiş bir CWinThreadnesnesi oluşturabilir ve ardından çağırabilirsiniz CreateThread. Bu iki aşamalı derleme yöntemi, nesneyi ardışık oluşturma ve iş parçacığı yürütme sonlandırmaları arasında yeniden kullanmak CWinThread istiyorsanız yararlıdır.

hakkında CWinThreaddaha fazla bilgi için C++ ve MFC ile Çoklu İş Parçacığı Kullanımı, Çoklu İş Parçacığı Kullanımı: Kullanıcı Arabirimi İş Parçacıkları Oluşturma, Çoklu İş Parçacığı Kullanımı: Çalışan İş Parçacıkları Oluşturma ve Çoklu İş Parçacığı Kullanımı: Eşitleme Sınıflarını Kullanma makalelerine bakın.

Devralma Hiyerarşisi

CObject

CCmdTarget

CWinThread

Gereksinimler

Üstbilgi: afxwin.h

CWinThread::CreateThread

Çağırma işleminin adres alanı içinde yürütülecek bir iş parçacığı oluşturur.

BOOL CreateThread(
    DWORD dwCreateFlags = 0,
    UINT nStackSize = 0,
    LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL);

Parametreler

dwCreateFlags
İş parçacığının oluşturulmasını denetleen ek bir bayrak belirtir. Bu bayrak iki değerden birini içerebilir:

  • CREATE_SUSPENDED bir askıya alma sayısı ile iş parçacığını başlatın. İş parçacığı çalışmaya başlamadan önce nesnenin CWinThread veya türetilmiş sınıfınızın herhangi bir üyesi gibi m_bAutoDelete herhangi bir üye verilerini başlatmak istiyorsanız kullanınCREATE_SUSPENDED. Başlatma işleminiz tamamlandıktan sonra, iş parçacığını çalıştırmak için komutunu CWinThread::ResumeThread kullanın. İş parçacığı çağrılana kadar CWinThread::ResumeThread yürütülmeyecek.

  • 0 Oluşturma işleminden hemen sonra iş parçacığını başlatın.

nStackSize
Yeni iş parçacığı için yığının bayt cinsinden boyutunu belirtir. 0 ise, yığın boyutu varsayılan olarak işlemin birincil iş parçacığıyla aynı boyuta sahip olur.

lpSecurityAttrs
İş parçacığının güvenlik özniteliklerini belirten bir SECURITY_ATTRIBUTES yapıya işaret eder.

Dönüş Değeri

İş parçacığı başarıyla oluşturulursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

Bir iş parçacığı nesnesi oluşturmak ve bir adımda yürütmek için kullanın AfxBeginThread . ardışık oluşturma ve iş parçacığı yürütmeleri sonlandırma arasında iş parçacığı nesnesini yeniden kullanmak istiyorsanız kullanın CreateThread .

CWinThread::CWinThread

Bir CWinThread nesne oluşturur.

CWinThread();

Açıklamalar

İş parçacığının yürütülmesine başlamak için üye işlevini çağırın CreateThread . İş parçacıklarını genellikle bu oluşturucuyu ve CreateThreadçağıracak olan öğesini çağırarak AfxBeginThreadoluşturursunuz.

CWinThread::ExitInstance

İş parçacığının bu örneğinden çıkmak için nadiren geçersiz kılınan Run üye işlevinin içinden çerçeve tarafından çağrılır veya bir çağrı InitInstance başarısız olursa.

virtual int ExitInstance();

Dönüş Değeri

İş parçacığının çıkış kodu; 0 hata olmadığını, 0'dan büyük değerler ise hata olduğunu gösterir. Bu değer çağrılarak GetExitCodeThreadalınabilir.

Açıklamalar

Bu üye işlevini üye işlevi dışında hiçbir yerden Run çağırmayın. Bu üye işlevi yalnızca kullanıcı arabirimi iş parçacıklarında kullanılır.

Bu işlevin varsayılan uygulaması ise m_bAutoDelete TRUEnesnesini silerCWinThread. İş parçacığınız sonlandırıldığında ek temizleme gerçekleştirmek istiyorsanız bu işlevi geçersiz kılın. uygulamanız ExitInstance , kodunuz yürütüldükten sonra temel sınıfın sürümünü çağırmalıdır.

CWinThread::GetMainWnd

Uygulamanız bir OLE sunucusuysa, doğrudan uygulama nesnesinin üyesine başvurmak yerine uygulamanın etkin ana penceresine bir işaretçi almak için m_pMainWnd bu işlevi çağırın.

virtual CWnd* GetMainWnd();

Dönüş Değeri

Bu işlev, iki pencere türünden birine işaretçi döndürür. İş parçacığınız bir OLE sunucusunun parçasıysa ve etkin bir kapsayıcının içinde etkin olan bir nesneye sahipse, bu işlev nesnenin CWinApp::m_pActiveWnd veri üyesini CWinThread döndürür.

Kapsayıcı içinde etkin olan bir nesne yoksa veya uygulamanız bir OLE sunucusu değilse, bu işlev iş parçacığı nesnenizin veri üyesini döndürür m_pMainWnd .

Açıklamalar

Kullanıcı arabirimi iş parçacıkları için bu, uygulama nesnenizin üyesine m_pActiveWnd doğrudan başvurmaya eşdeğerdir.

Uygulamanız bir OLE sunucusu değilse, bu işlevi çağırmak doğrudan uygulama nesnenizin üyesine m_pMainWnd başvurmaya eşdeğerdir.

Varsayılan davranışı değiştirmek için bu işlevi geçersiz kılın.

CWinThread::GetThreadPriority

Bu iş parçacığının geçerli iş parçacığı öncelik düzeyini alır.

int GetThreadPriority();

Dönüş Değeri

Geçerli iş parçacığı öncelik düzeyi, öncelik sınıfı içinde. Döndürülen değer, en yüksek önceliğe ve en düşük önceliğe kadar listelenen aşağıdakilerden biri olacaktır:

  • THREAD_PRIORITY_TIME_CRITICAL

  • THREAD_PRIORITY_HIGHEST

  • THREAD_PRIORITY_ABOVE_NORMAL

  • THREAD_PRIORITY_NORMAL

  • THREAD_PRIORITY_BELOW_NORMAL

  • THREAD_PRIORITY_LOWEST

  • THREAD_PRIORITY_IDLE

Bu önceliklerle ilgili daha fazla bilgi için bkz SetThreadPriority . Windows SDK'sı.

CWinThread::InitInstance

InitInstance kullanıcı arabirimi iş parçacığının her yeni örneğini başlatmak için geçersiz kılınmalıdır.

virtual BOOL InitInstance();

Dönüş Değeri

Başlatma başarılı olursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

Genellikle, bir iş parçacığı ilk oluşturulduğunda tamamlanması gereken görevleri gerçekleştirmek için geçersiz kılarsınız InitInstance .

Bu üye işlevi yalnızca kullanıcı arabirimi iş parçacıklarında kullanılır. öğesine geçirilen denetim işlevinde çalışan iş parçacıklarının başlatılmasını AfxBeginThreadgerçekleştirin.

CWinThread::IsIdleMessage

Belirli iletiler oluşturulduktan sonra çağrılmaması OnIdle için bu işlevi geçersiz kılın.

virtual BOOL IsIdleMessage(MSG* pMsg);

Parametreler

pMsg
İşlenmekte olan geçerli iletiyi gösterir.

Dönüş Değeri

İleti işlendikten sonra çağrılırsa OnIdle sıfır olmayan; aksi takdirde 0.

Açıklamalar

Varsayılan uygulama, yedekli fare iletileri ve yanıp sönen girişler tarafından oluşturulan iletiler sonrasında çağrı OnIdle yapmaz.

Bir uygulama kısa bir süreölçer oluşturduysa, OnIdle sık sık çağrılır ve performans sorunlarına neden olur. Böyle bir uygulamanın performansını geliştirmek için WM_TIMER uygulamanın türetilmiş sınıfını CWinAppgeçersiz kılarak IsIdleMessage iletileri aşağıdaki gibi denetleyin:

BOOL CMyWinApp::IsIdleMessage(MSG* pMsg)
{
   if (!CWinApp::IsIdleMessage(pMsg) || pMsg->message == WM_TIMER)
      return FALSE;
   else
      return TRUE;
}

Bu şekilde işleme WM_TIMER , kısa süreölçer kullanan uygulamaların performansını geliştirecektir.

CWinThread::m_bAutoDelete

nesnenin iş parçacığı sonlandırma sırasında CWinThread otomatik olarak silinip silinmeyeceğini belirtir.

BOOL m_bAutoDelete;

Açıklamalar

Veri m_bAutoDelete üyesi, BOOL türünde bir genel değişkendir.

değeri m_bAutoDelete , temel alınan iş parçacığı tutamacının nasıl kapatılırını etkilemez, ancak tanıtıcının kapatılmasının zamanlamasını etkiler. nesne yok edildiğinde CWinThread iş parçacığı tutamacı her zaman kapatılır.

CWinThread::m_hThread

Bu CWinThreadöğesine bağlı iş parçacığının tutamacı.

HANDLE m_hThread;

Açıklamalar

Veri m_hThread üyesi türünde HANDLEbir ortak değişkendir. Yalnızca temel alınan çekirdek iş parçacığı nesnesi mevcutsa ve tanıtıcı henüz kapatılmamışsa geçerlidir.

Yıkıcı CWinThread üzerinde çağrısında CloseHandle bulunur m_hThread. TRUE İş m_bAutoDelete parçacığı sonlandırıldığında nesne CWinThread yok edilir ve bu da nesnenin CWinThread ve üye değişkenlerinin işaretçilerini geçersiz kılır. Üyenin m_hThread iş parçacığı çıkış değerini denetlemesi veya bir sinyal beklemesi gerekebilir. nesneyi ve üyesini m_hThread iş parçacığı yürütme sırasında ve sonlandırıldıktan sonra tutmak CWinThread için, iş parçacığı yürütmenin devam etmesi için FALSE izin vermeden önce olarak ayarlayınm_bAutoDelete. Aksi takdirde, iş parçacığı sonlandırabilir, nesneyi yok CWinThread edebilir ve kullanmaya çalışmadan önce tanıtıcıyı kapatabilir. Bu tekniği kullanırsanız, nesnenin silinmesi sizin sorumluluğundadır CWinThread .

CWinThread::m_nThreadID

Bu CWinThreadöğesine eklenen iş parçacığının kimliği.

DWORD m_nThreadID;

Açıklamalar

Veri m_nThreadID üyesi türünde DWORDbir ortak değişkendir. Yalnızca temel alınan çekirdek iş parçacığı nesnesi mevcutsa geçerlidir. Ayrıca yaşam süresiyle ilgili m_hThread açıklamalara da bakın.

Örnek

örneğine AfxGetThreadbakın.

CWinThread::m_pActiveWnd

İş parçacığınızın etkin pencere nesnesine bir işaretçi depolamak için bu veri üyesini kullanın.

CWnd* m_pActiveWnd;

Açıklamalar

Microsoft Foundation Sınıf Kitaplığı, tarafından başvurulan m_pActiveWnd pencere kapatıldığında iş parçacığınızı otomatik olarak sonlandıracaktır. Bu iş parçacığı bir uygulamanın birincil iş parçacığıysa, uygulama da sonlandırılır. Bu veri üyesi ise NULL, uygulamanın CWinApp nesnesinin etkin penceresi devralınır. m_pActiveWnd türünde CWnd*bir ortak değişkendir.

Genellikle, geçersiz kıldığınızda InitInstancebu üye değişkenini ayarlarsınız. Bir çalışan iş parçacığında, bu veri üyesinin değeri üst iş parçacığından devralınır.

CWinThread::m_pMainWnd

İş parçacığınızın ana pencere nesnesine bir işaretçi depolamak için bu veri üyesini kullanın.

CWnd* m_pMainWnd;

Açıklamalar

Microsoft Foundation Sınıf Kitaplığı, tarafından başvurulan m_pMainWnd pencere kapatıldığında iş parçacığınızı otomatik olarak sonlandıracaktır. Bu iş parçacığı bir uygulamanın birincil iş parçacığıysa, uygulama da sonlandırılır. Bu veri üyesi ise NULL, iş parçacığının ne zaman sonlandırılacağını belirlemek için uygulamanın CWinApp nesnesinin ana penceresi kullanılır. m_pMainWnd türünde CWnd*bir ortak değişkendir.

Genellikle, geçersiz kıldığınızda InitInstancebu üye değişkenini ayarlarsınız. Bir çalışan iş parçacığında, bu veri üyesinin değeri üst iş parçacığından devralınır.

CWinThread::OnIdle

Boşta kalma süresi işleme gerçekleştirmek için bu üye işlevini geçersiz kılın.

virtual BOOL OnIdle(LONG lCount);

Parametreler

lCount
İş parçacığının ileti kuyruğu boş olduğunda her seferinde OnIdle artırılan bir sayaç çağrılır. Bu sayı, her yeni ileti işlendiğinde 0 olarak sıfırlanır. bir ileti işlemeden iş parçacığının boşta olduğu göreli süreyi belirlemek için parametresini kullanabilirsiniz lCount .

Dönüş Değeri

Daha fazla boşta işlem süresi almak için sıfır olmayan; Artık boşta işlem süresi gerekmiyorsa 0.

Açıklamalar

OnIdle , iş parçacığının ileti kuyruğu boş olduğunda varsayılan ileti döngüsünde çağrılır. Kendi arka plan boşta işleyici görevlerinizi çağırmak için geçersiz kılmanızı kullanın.

OnIdle ek boşta işlem süresi gerekmediğini belirtmek için 0 döndürmelidir. İleti lCount kuyruğu boş olduğunda her OnIdle çağrılırken parametresi artırılır ve her yeni ileti işlendiğinde 0'a sıfırlanır. Bu sayıya göre farklı boşta yordamlarınızı çağırabilirsiniz.

Bu üye işlevinin varsayılan uygulaması geçici nesneleri ve kullanılmayan dinamik bağlantı kitaplıklarını bellekten serbest bırakır.

Bu üye işlevi yalnızca kullanıcı arabirimi iş parçacıklarında kullanılır.

Uygulama döndürülene kadar OnIdle iletileri işleyemediğinden, bu işlevde uzun görevler gerçekleştirmeyin.

CWinThread::operator HANDLE

Nesnenin tutamacını CWinThread alır.

operator HANDLE() const;

Dönüş Değeri

Başarılı olursa, iş parçacığı nesnesinin tanıtıcısı; aksi takdirde , NULL.

Açıklamalar

Windows API'lerini doğrudan çağırmak için tutamacı kullanın.

CWinThread::PostThreadMessage

Kullanıcı tanımlı bir iletiyi başka CWinThread bir nesneye göndermek için çağrılır.

BOOL PostThreadMessage(
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Parametreler

message
Kullanıcı tanımlı iletinin kimliği.

wParam
İlk ileti parametresi.

lParam
İkinci ileti parametresi.

Dönüş Değeri

Başarılı olursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

Gönderilen ileti, ileti eşleme makrosunun ON_THREAD_MESSAGEuygun ileti işleyicisine eşlenir.

Not

çağrısı PostThreadMessageyaptığınızda, ileti iş parçacığının ileti kuyruğuna yerleştirilir. Ancak, bu şekilde gönderilen iletiler bir pencereyle ilişkilendirilmediğinden, MFC bunları iletiye veya komut işleyicilerine göndermez. Bu iletileri işlemek için türetilmiş sınıfınızın CWinAppişlevini geçersiz kılın PreTranslateMessage() ve iletileri el ile işleyebilir.

CWinThread::PreTranslateMessage

Pencere iletilerini Windows işlevlerine TranslateMessage ve DispatchMessagegöndermeden önce filtrelemek için bu işlevi geçersiz kılın.

virtual BOOL PreTranslateMessage(MSG* pMsg);

Parametreler

pMsg
İşlenmesi gereken iletiyi içeren bir MSG yapıya işaret ediyor.

Dönüş Değeri

İleti içinde tam olarak işlendiyse PreTranslateMessage ve daha fazla işlenmemesi gerekiyorsa sıfır olmayan. İletinin normal şekilde işlenmesi gerekiyorsa sıfır.

Açıklamalar

Bu üye işlevi yalnızca kullanıcı arabirimi iş parçacıklarında kullanılır.

CWinThread::ProcessMessageFilter

Çerçevenin kanca işlevi, belirli Windows iletilerini filtrelemek ve yanıtlamak için bu üye işlevini çağırır.

virtual BOOL ProcessMessageFilter(
    int code,
    LPMSG lpMsg);

Parametreler

code
Bir kanca kodu belirtir. Bu üye işlevi, nasıl işleneceğini lpMsgbelirlemek için kodunu kullanır.

lpMsg
Windows MSG yapısının işaretçisi.

Dönüş Değeri

İleti işlenirse sıfır olmayan; aksi takdirde 0.

Açıklamalar

Kanca işlevi, olayları uygulamanın normal ileti işlemesine gönderilmeden önce işler.

Bu gelişmiş özelliği geçersiz kılarsanız, çerçevenin kanca işlemesini korumak için temel sınıf sürümünü çağırdığınızdan emin olun.

CWinThread::ProcessWndProcException

İşleyici, iş parçacığınızın ileti veya komut işleyicilerinden birinde oluşan bir özel durumu yakalamadığı her durumda çerçeve bu üye işlevini çağırır.

virtual LRESULT ProcessWndProcException(
    CException* e,
    const MSG* pMsg);

Parametreler

e
İşlenmeyen bir özel duruma işaret etti.

pMsg
Çerçevenin özel MSG durum oluşturmasına neden olan Windows iletisi hakkında bilgi içeren bir yapıya işaret eder.

Dönüş Değeri

Bir WM_CREATE özel durum oluşturulursa -1; aksi takdirde 0.

Açıklamalar

Bu üye işlevini doğrudan çağırmayın.

Bu üye işlevinin varsayılan uygulaması yalnızca aşağıdaki iletilerden oluşturulan özel durumları işler:

Command Eylem
WM_CREATE Başarısız.
WM_PAINT Etkilenen pencereyi doğrulayarak başka bir WM_PAINT iletinin oluşturulmasını önleyin.

Özel durumlarınızın genel olarak işlenmesini sağlamak için bu üye işlevini geçersiz kılın. Yalnızca varsayılan davranışı görüntülemek istiyorsanız temel işlevselliği çağırın.

Bu üye işlevi yalnızca ileti pompası olan iş parçacıklarında kullanılır.

CWinThread::PumpMessage

İş parçacığının ileti döngüsünü içerir.

virtual BOOL PumpMessage();

Açıklamalar

PumpMessage iş parçacığının ileti döngüsünü içerir. PumpMessage , tarafından CWinThread iş parçacığının iletilerini pompalayarak çağrılır. İletilerin işlenmesini zorlamak için doğrudan arayabilir PumpMessage veya varsayılan davranışını değiştirmek için geçersiz kılabilirsiniz PumpMessage .

Yalnızca ileri düzey kullanıcılar için doğrudan çağrılması PumpMessage ve varsayılan davranışının geçersiz kılınılması önerilir.

CWinThread::ResumeThread

Üye işlevi tarafından askıya alınan bir iş parçacığının veya bayrağıyla oluşturulan bir iş parçacığının SuspendThread yürütülmesini sürdürmek için çağrılır CREATE_SUSPENDED .

DWORD ResumeThread();

Dönüş Değeri

Başarılı olursa iş parçacığının önceki askıya alma sayısı; 0xFFFFFFFF yoksa. Dönüş değeri sıfırsa, geçerli iş parçacığı askıya alınmamıştır. Dönüş değeri bir ise, iş parçacığı askıya alınmıştır, ancak şimdi yeniden başlatılır. Birden büyük herhangi bir dönüş değeri, iş parçacığının askıya alınmış olarak kaldığı anlamına gelir.

Açıklamalar

Geçerli iş parçacığının askıya alma sayısı bir azaltılır. Askıya alma sayısı sıfıra düşürülürse, iş parçacığı yürütmeye devam eder; aksi takdirde iş parçacığı askıya alınır.

CWinThread::Run

Kullanıcı arabirimi iş parçacıkları için varsayılan bir ileti döngüsü sağlar.

virtual int Run();

Dönüş Değeri

İş int parçacığı tarafından döndürülen bir değer. Bu değer çağrılarak GetExitCodeThreadalınabilir.

Açıklamalar

Run uygulama bir WM_QUIT ileti alana kadar Windows iletilerini alır ve dağıtıyor. İş parçacığının ileti kuyruğu şu anda ileti içermiyorsa, Run boşta kalma süresi işleme gerçekleştirmek için çağrı yapar OnIdle . Gelen iletiler özel işlem için üye işlevine PreTranslateMessage ve ardından standart klavye çevirisi için Windows işlevine TranslateMessage gider. Son olarak, DispatchMessage Windows işlevi çağrılır.

Run nadiren geçersiz kılınabilir, ancak özel davranış uygulamak için geçersiz kılabilirsiniz.

Bu üye işlevi yalnızca kullanıcı arabirimi iş parçacıklarında kullanılır.

CWinThread::SetThreadPriority

Bu işlev, geçerli iş parçacığının öncelik düzeyini kendi öncelik sınıfı içinde ayarlar.

BOOL SetThreadPriority(int nPriority);

Parametreler

nPriority
Yeni iş parçacığı öncelik düzeyini kendi öncelik sınıfı içinde belirtir. Bu parametre, en yüksek öncelikten en düşüke kadar listelenen aşağıdaki değerlerden biri olmalıdır:

  • THREAD_PRIORITY_TIME_CRITICAL

  • THREAD_PRIORITY_HIGHEST

  • THREAD_PRIORITY_ABOVE_NORMAL

  • THREAD_PRIORITY_NORMAL

  • THREAD_PRIORITY_BELOW_NORMAL

  • THREAD_PRIORITY_LOWEST

  • THREAD_PRIORITY_IDLE

Bu önceliklerle ilgili daha fazla bilgi için bkz SetThreadPriority . Windows SDK'sı.

Dönüş Değeri

İşlev başarılıysa sıfır olmayan; aksi takdirde 0.

Açıklamalar

Yalnızca başarıyla döndürdüğünde CreateThread çağrılabilir.

CWinThread::SuspendThread

Geçerli iş parçacığının askıya alma sayısını artırır.

DWORD SuspendThread();

Dönüş Değeri

Başarılı olursa iş parçacığının önceki askıya alma sayısı; 0xFFFFFFFF yoksa.

Açıklamalar

Herhangi bir iş parçacığının askıya alma sayısı sıfırın üzerindeyse, bu iş parçacığı yürütülmüyor. İş parçacığı, üye işlevi çağrılarak ResumeThread sürdürülebilir.

Ayrıca bkz.

CCmdTarget Sınıf
Hiyerarşi Grafiği
CWinApp Sınıf
CCmdTarget Sınıf