???????????????(CRITICAL_SECTION)?????????
???????????? ???????[ 2015/12/28 13:52:13 ] ?????????????????? ????????
????1.?????????????????InitializeCriticalSection()
??????????InitializeCriticalSection(&m_criticalSection);??ε????????????????????????????????????????m_criticalSection??????????????????InitializeCriticalSection()????????InitializeCriticalSection()????InitializeCriticalSection()??
???????????£?
1 class CAVIFile
2 {
3 public:
4 CAVIFile()
5 {
6 if (m_shouldInit)
7 {
8 InitializeCriticalSection(&m_criticalSection); // ??????????
9 m_shouldInit = false;
10 }
11 }
12 HRESULT OpenFile(const string& strFileName?? const string& strDirectoryPath)
13 {
14 // ....
15 EnterCriticalSection(&m_criticalSection);
16 SetCurrentDirectory(strDirectoryPath.c_str());
17 // ...
18 LeaveCriticalSection(&m_criticalSection);
19 //...
20 }
21 // ...
22 private:
23 // ...
24 // ?????????????????????
25 static CRITICAL_SECTION m_criticalSection;
26 static bool m_shouldInit;
27 };
28 CRITICAL_SECTION CAVIFile::m_criticalSection;
29 bool CAVIFile::m_shouldInit = true;
????????????????????????????????ж?????????????m_shouldInit???ж???????InitializeCriticalSection()?????????????InitializeCriticalSection()??????InitializeCriticalSection()???????????????????????????????????????????????????????????m_shouldInit?????m_shouldInit?????????????????????m_shouldInit?????????????????????????????????ζ??????????????InitializeCriticalSection(&m_criticalSection)??ε?????????????????????????????????????????????????m_shouldInit????????????????InitializeCriticalSection()????????????????????????????????????????????
???????????????????????????
????2??????????
????????????У???????????????????????????????????????????????????????????????????????ι??????????????????????????????InitializeCriticalSection()??????????
?????????????£?
1 class CAVIFile
2 {
3 public:
4 // ...
5 HRESULT OpenFile(const string& strFileName?? const string& strDirectoryPath)
6 {
7 // ....
8 EnterCriticalSection(&m_criticalSection);
9 SetCurrentDirectory(strDirectoryPath.c_str());
10 // ...
11 LeaveCriticalSection(&m_criticalSection);
12 //...
13 }
14 // ...
15 private:
16 //...
17 // ?????????????????????
18 static CRITICAL_SECTION m_criticalSection;
19 private:
20 // Singleton?????????????????????????????m_criticalSection
21 // ?????
22 class Singleton
23 {
24 private:
25 Singleton() { InitializeCriticalSection(&m_criticalSection); }
26 Singleton(const Singleton& other);
27 Singleton& operator=(const Singleton& other);
28
29 static Singleton m_Singleton;
30 };
31 friend class Singleton;
32 };
33 CRITICAL_SECTION CAVIFile::m_criticalSection;
34 CAVIFile::Singleton CAVIFile::Singleton::m_Singleton;
??????????????????????????????????????????????????????????????Σ????????m_criticalSection ??InitializeCriticalSection()??Ρ???????????????????
???????????????????????漰???????????????????SPASVOС??(021-61079698-8054)?????????????????????????
??????
???д?ò??????????????????????д?淶??α??????????????????????????????????????????????????????е?Ч?????в????г??????????????????????в?????????????в????г????????????????????????????в????е???????????????????????????????????????ж??????????????????????????????ALM(??????????????)????????????????excel????????ALM(??????????????)????????????????????????????????????????????????д????????????????????????????????????????????????????????????????????????

???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11????????
?????????App Bug???????????????????????Jmeter?????????QC??????APP????????????????app?????е????????jenkins+testng+ant+webdriver??????????????JMeter????HTTP???????Selenium 2.0 WebDriver ??????