Комментарии 6
Добавьте ещё в список volatile, без него при многопоточности может быть забавная побочка (хотя в .NET старались её избежать ценой некоторой потери производительности).
Спасибо за напоминание о давно забытом CountdownEvent) Сейчас даже открыл один проект, он туда прям идеально подходит, заюзал его там
Круто! Очень рад, что статья помогла.
Сможете поделится кейсом в котором пригодился? Думаю реальный кейс окажется полезен «будущим поколениям»
Сможете поделится кейсом в котором пригодился? Думаю реальный кейс окажется полезен «будущим поколениям»
С удовольствием!
Суть такова: есть файл, в котором лежат независимые блоки информации. Читатель последовательно считывает их и закидывает в очереди, откуда с другой стороны их забирают несколько потоков-обработчиков (у каждого своя очередь), чтобы что-то с ними сделать. Число обработчиков известно на момент вызова, динамически менять его не нужно. Собственно, нужно дождаться, пока все обработчики просигнализируют о завершении своей работы, и CountdownEvent здесь как нельзя кстати)
Суть такова: есть файл, в котором лежат независимые блоки информации. Читатель последовательно считывает их и закидывает в очереди, откуда с другой стороны их забирают несколько потоков-обработчиков (у каждого своя очередь), чтобы что-то с ними сделать. Число обработчиков известно на момент вызова, динамически менять его не нужно. Собственно, нужно дождаться, пока все обработчики просигнализируют о завершении своей работы, и CountdownEvent здесь как нельзя кстати)
Добрый день! А в случае async/await c ReaderWriterLockSlim как работать ?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
.NET: Инструменты для работы с многопоточностью и асинхронностью. Часть 2