Майкрософщини
9 отговора
750 прегледа
Майкрософщини
Имам един клас (CMyClass), който има мембер synchronization обект. Съответно Lock и Unlock методи, които просто заключват тоя synchronization обект. Само че кодът
void CMyClass::F1Internal()
{
assert( IsLocked() );
* * *
}
void CMyClass::F1()
{
Lock();
TRACE( "%d\r\n", ::GetThreadId() );
F1Internal();
* * *
Unlock();
}
void main()
{
CMyClass obj;
bool *bFinishedFirst = NULL;
bool *bFinishedSecond = NULL;
bFinishedFirst = ::MyStartNewThread( &obj );
bFinishedSecond = ::MyStartNewThread( &obj );
while( !*bFinishedSecond || !*bFinishedFirst );
return 0;
}
ми трейсва на няколко треда влизането и гърми на ассерт-а в F1Internal() във втория треад.
Пробвах и с CMutex и с CCriticalSection, ма се тая ... Какво е решението ?!?
void CMyClass::F1Internal()
{
assert( IsLocked() );
* * *
}
void CMyClass::F1()
{
Lock();
TRACE( "%d\r\n", ::GetThreadId() );
F1Internal();
* * *
Unlock();
}
void main()
{
CMyClass obj;
bool *bFinishedFirst = NULL;
bool *bFinishedSecond = NULL;
bFinishedFirst = ::MyStartNewThread( &obj );
bFinishedSecond = ::MyStartNewThread( &obj );
while( !*bFinishedSecond || !*bFinishedFirst );
return 0;
}
ми трейсва на няколко треда влизането и гърми на ассерт-а в F1Internal() във втория треад.
Пробвах и с CMutex и с CCriticalSection, ма се тая ... Какво е решението ?!?
Re: Майкрософщини
e да беше казал какво има в Lock и Unlock. аз ползвам мутекси аз синхронизация, само че директно с WaitForSingleObject, без мфц или друга библиотека. не съм имал проблем, а ползването им е фасулски просто - бях приятно изненадан че няма никакви излишни операции.
Re: Майкрософщини
Кво да има
CMyClass::Lock()
{
m_objSynchronizator.Lock();
}
CMyClass::Unlock()
{
m_objSynchronizator.Unlock();
}
Но благодаря за съвета - и аз ще пробвам WaitForSingleObject4.
CMyClass::Lock()
{
m_objSynchronizator.Lock();
}
CMyClass::Unlock()
{
m_objSynchronizator.Unlock();
}
Но благодаря за съвета - и аз ще пробвам WaitForSingleObject4.
Re: Майкрософщини
Гоше, заеби МФЦ-то. То не ти дава нищо особено.
Верно е, знаменитият ЦСтринг е турбо як, но има и други библиотеки, дето имат стрингове. Ако па ти е толкова любим ЦСтринг-а - можеш да си поиграеш, да загубиш един ден и да си напишеш сам такъв клас.
МФЦ е боза и цифки. Наскоро (преди 3-4 месеца) гледах нови "яки" книги за МФЦ. Тия микрософци нема да се укротят, да знаеш. Наистина това е част от световния заговор. Яко МФЦ и яко индийци. Насекъде. И на Централна Гара София.
Аз например потребявам предимно СТЛ, ако ми требе контейнер. Или ВТЛ ако ми требе да правя прозорци, бутони и подобни чудесии. Понякога потреблювам и АТЛ, нищо че е микрософтско. Все пак на виндовс програмируваме, нали?
Верно е, знаменитият ЦСтринг е турбо як, но има и други библиотеки, дето имат стрингове. Ако па ти е толкова любим ЦСтринг-а - можеш да си поиграеш, да загубиш един ден и да си напишеш сам такъв клас.
МФЦ е боза и цифки. Наскоро (преди 3-4 месеца) гледах нови "яки" книги за МФЦ. Тия микрософци нема да се укротят, да знаеш. Наистина това е част от световния заговор. Яко МФЦ и яко индийци. Насекъде. И на Централна Гара София.
Аз например потребявам предимно СТЛ, ако ми требе контейнер. Или ВТЛ ако ми требе да правя прозорци, бутони и подобни чудесии. Понякога потреблювам и АТЛ, нищо че е микрософтско. Все пак на виндовс програмируваме, нали?
Re: Майкрософщини
MFCL е феноменална. В смисъл - не съм срещал по-псувана и същевременно интензивно използвана (от любители до майстори) библиотека. :))
Re: Майкрософщини
Хехе да - и едновременно псувана и възхвалявана хем колко е 'тънка', хем колко е 'дебела'. 
Сигнатура!
Сигнатура!
Re: Майкрософщини
ами то с всичко от Микрософт е така,
като нямаш възможност да избереш,
ползваш и псуваш...
като нямаш възможност да избереш,
ползваш и псуваш...
Re: Майкрософщини
Не се сещам за MS технология без алтернатива. Друг е въпросът коя доколко адекватно върши работа :)