Господа-товарищи managed гуру, покритикуйте реализацию этих C#повских мегаудобных штук для MC++.
использование:
// ArrayList *m_recorders;
__lock(m_recorders)
{
__foreach (Recorder *, rec, m_recorders)
rec -> Write();
}
можно и по отдельности их юзать
__foreach
__lock
В основном интересуют потенциальные глюки с GCHandle.
Еще я сталкивался с каким-то непонятным багом в деструкторе ForeachHelper, который выливается в ExecutionEngineException. Но только в Release — конфигурации.
Мысли по этому поводу тоже приветствуются.
Здравствуйте, __gin, Вы писали:
__>Господа-товарищи managed гуру, покритикуйте реализацию этих C#повских мегаудобных штук для MC++.
А можно поинтересовать, к чему велосипед? Ведь в C++/CLI уже есть "for each" и класс lock.
Или сильно хочется именно MC++ и соответственно VS 2003? ИМХО, C++/CLI намного лучше чем MC++ — они потихоньку начинают доводить C++ для дотнета до ума.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, Nuald, Вы писали:
N>А можно поинтересовать, к чему велосипед? Ведь в C++/CLI уже есть "for each" и класс lock.
N>Или сильно хочется именно MC++ и соответственно VS 2003? ИМХО, C++/CLI намного лучше чем MC++ — они потихоньку начинают доводить C++ для дотнета до ума.
Есть нюанс

. Проект, с которым сейчас работаю — именно VS 2003. И фреймворк 1.1. Кода уже довольно много именно на MC++, так что перейти — проблема. Да и времени сейчас совсем нет на это.
К тому же, ОНО в основном работает

Если не считать этого непонятного глюка в релизе, который проявлялся только в одном месте...
Здравствуйте, __gin, Вы писали:
__>Если не считать этого непонятного глюка в релизе, который проявлялся только в одном месте...
К сожалению, VS 2003 у меня не стоит, и могу только предположить в рамках моего ИМХА. Дотнет может пытаться сделать что-нить противоестественное с членами ForeachHelper::m_iterator и ForeachHelper::m_object в деструкторе, поэтому возможно было бы неплохо предварительно их обнулять (в том же деструкторе). И, кстати, опять-таки без MSDN-а трудно сказать, но не создает ли оператор -> копию m_object? Тогда надо все заменить на ссылки, если это возможно.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>