если вспомнить за что мы не любили С++ — прописи памяти и ошибки её выделения/освобождения (которые так легко пороскакивали).
M$ расправился с этим раз и навсегда — сделал сборщик мусора в C#.
Но есть ещё один вид ошибок которые легко упустить из виду — это синхронизация (во время записи структуры из одного потока можно прочитать не совсем записавшеюся её из другого потока)
Есть ли какие нибудь методы для автоматического расставления мутексов и симафоров?
Здравствуйте, vvv848165@ya.ru, Вы писали:
VYR>если вспомнить за что мы не любили С++ — прописи памяти и ошибки её выделения/освобождения (которые так легко пороскакивали).
Мы любили C++, просто за .NET платили больше.
VYR>M$ расправился с этим раз и навсегда — сделал сборщик мусора в C#.
Про фрагментацию LOH мы тактично промолчим.
И про IDisposable, который забыли вызвать.
И про удержание ссылок на short-lived объекты каким-нибудь long-lived объектом.
VYR>Есть ли какие нибудь методы для автоматического расставления мутексов и симафоров?
[MethodImpl(MethodImplOptions.Synchronized)], но это дичь, от которой в M$ давно отказались.
SynchronizationContext можно сюда же приплести.
VYR>Что дальше...
Дальше F# и иммутабельность