CComMultiThreadModel::AutoCriticalSection

typedef CComAutoCriticalSection AutoCriticalSection;

ÁÖÀÇ

Typedef À̸§ AutoCriticalSection ÂüÁ¶ Ŭ·¡½º CComAutoCriticalSection¸¦ Ãëµæ ÇÏ °í Áß¿ä ¼½¼Ç °³Ã¼ÀÇ ¼ÒÀ¯±ÇÀ» °ø°³¿¡ ´ë ÇÑ ¸Þ¼­µå¸¦ Á¦°ø ÇÏ´Â CComMultiThreadModel¸¦ »ç¿ë ÇÏ´Â °æ¿ì¡£

CComSingleThreadModel ¹× CComMultiThreadModelNoCS ¿¡ AutoCriticalSection¿¡ ´ë ÇÑ Á¤Àǰ¡ Æ÷ÇÔ µÇ¾î ÀÖ½À´Ï´Ù. ´ÙÀ½ Ç¥¿¡¼­ ½º·¹µù ¸ðµ¨ Ŭ·¡½º¿Í AutoCriticalSection ¿¡ ÀÇÇØ Áß¿ä ¼½¼Ç Ŭ·¡½º ÂüÁ¶ÀÇ °ü°è¸¦ º¸¿© ÁÝ´Ï´Ù.:

Ŭ·¡½º¿¡ Á¤ÀÇ µÈ Ŭ·¡½º ÂüÁ¶
CComMultiThreadModel CComCriticalSection
CComSingleThreadModel CComFakeCriticalSection
CComMultiThreadModelNoCS CComFakeCriticalSection

AutoCriticalSection, À̿ܿ¡ typedef À̸§ CriticalSectionÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÁöÁ¤ ÇÏÁö ¾Ê¾Æ¾ß AutoCriticalSection Àü¿ª °³Ã¼ ¶Ç´Â Á¤Àû Ŭ·¡½º ¸â¹ö¿¡´Â CRT ½ÃÀÛ Äڵ带 Á¦°Å ÇÏ·Á´Â °æ¿ì¡£

¿¹Á¦

´ÙÀ½ ÄÚµå´Â CComObjectRootEx ¿¡¼­ °¡Á®¿Â¡£

templatelt; ThreadModel Ŭ·¡½º >
CComObjectRootEx Ŭ·¡½º: °ø¿ë CComObjectRootBase
{
°ø°³:
 ? typedef ThreadModel _ThreadModel;
 ? typedef _ThreadModel::AutoCriticalSection _CritSec;

ULONG InternalAddRef)
 ? {
 ???? ...
 ???? ¹Ýȯ _ThreadModel::Increment(&m_dwRef);
 ? }
 ? ...
 ? void Àá±Ý () {m_critsec.Àá±Ý (); }
 ? ...

°³ÀÎ:
 ? _CritSec m_critsec;

}

´ÙÀ½ Ç¥¿¡¼­ ThreadModel ÅÛÇø´ ¸Å°³ º¯¼ö ¹× ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­ »ç¿ë ÇÏ´Â ½º·¹µù ¸ðµ¨¿¡ µû¶ó InternalAddRef ¹× Àá±Ý ¹æ¹ýÀÇ °á°ú º¸¿©:

ThreadModel = CComObjectThreadModel

´ÜÀÏ ¶Ç´Â ¾ÆÆÄÆ® ¹«·á
InternalAddRef ÁõºÐ ½º·¹µå·ÎºÎÅÍ ¾ÈÀü ÇÏÁö ¾Ê½À´Ï´Ù. Áõ°¡ ½º·¹µå·ÎºÎÅÍ ¾ÈÀü¡£
Àá±Ý ¾Æ¹«°Íµµ; °Å±â ¾Æ¹« ÀӰ踦 Àá±×·Á¸é¡£ Áß¿ä ¼½¼ÇÀÌ Àá°Ü¡£

ThreadModel = CComObjectThreadModel::ThreadModelNoCS

´ÜÀÏ ¶Ç´Â ¾ÆÆÄÆ® ¹«·á
InternalAddRef ÁõºÐ ½º·¹µå·ÎºÎÅÍ ¾ÈÀü ÇÏÁö ¾Ê½À´Ï´Ù. Áõ°¡ ½º·¹µå·ÎºÎÅÍ ¾ÈÀü¡£
Àá±Ý ¾Æ¹«°Íµµ; °Å±â ¾Æ¹« ÀӰ踦 Àá±×·Á¸é¡£ ¾Æ¹«°Íµµ; °Å±â ¾Æ¹« ÀӰ踦 Àá±×·Á¸é¡£

CComMultiThreadModel °³¿ä |nbsp; Ŭ·¡½º ¸â¹ö(&N)

Âü°í Ç׸ñnbsp;CComObjectThreadModel, CComGlobalsThreadModel, CComMultiThreadModel::ThreadModelNoCS(&N)

Index