foreach и lock в MC++
От: __gin Россия  
Дата: 08.07.06 15:30
Оценка:
Господа-товарищи managed гуру, покритикуйте реализацию этих C#повских мегаудобных штук для MC++.

использование:



// ArrayList   *m_recorders;

__lock(m_recorders)
{
    __foreach (Recorder *, rec, m_recorders)
        rec -> Write();
}

можно и по отдельности их юзать


__foreach
__lock

В основном интересуют потенциальные глюки с GCHandle.
Еще я сталкивался с каким-то непонятным багом в деструкторе ForeachHelper, который выливается в ExecutionEngineException. Но только в Release — конфигурации.
Мысли по этому поводу тоже приветствуются.
Re: foreach и lock в MC++
От: Nuald Россия http://nuald.blogspot.com
Дата: 10.07.06 01:20
Оценка:
Здравствуйте, __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>>
Re[2]: foreach и lock в MC++
От: __gin Россия  
Дата: 10.07.06 07:17
Оценка:
Здравствуйте, Nuald, Вы писали:

N>А можно поинтересовать, к чему велосипед? Ведь в C++/CLI уже есть "for each" и класс lock.

N>Или сильно хочется именно MC++ и соответственно VS 2003? ИМХО, C++/CLI намного лучше чем MC++ — они потихоньку начинают доводить C++ для дотнета до ума.

Есть нюанс . Проект, с которым сейчас работаю — именно VS 2003. И фреймворк 1.1. Кода уже довольно много именно на MC++, так что перейти — проблема. Да и времени сейчас совсем нет на это.
К тому же, ОНО в основном работает
Если не считать этого непонятного глюка в релизе, который проявлялся только в одном месте...
Re[3]: foreach и lock в MC++
От: Nuald Россия http://nuald.blogspot.com
Дата: 10.07.06 22:33
Оценка:
Здравствуйте, __gin, Вы писали:

__>Если не считать этого непонятного глюка в релизе, который проявлялся только в одном месте...


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