Ожидаемая коллекция многоразовых ресурсовC#

Место общения программистов C#
Ответить
Anonymous
 Ожидаемая коллекция многоразовых ресурсов

Сообщение Anonymous »


Я пытался найти это в Интернете, но не нашел именно того, что искал.

У меня есть список работников, выполняющих определенную работу. Для выполнения этой работы работникам необходим доступ к ресурсам. Поэтому мне нужна потокобезопасная коллекция, которая управляет доступом к ресурсам. Ресурсы можно использовать повторно, но доступ к ним может получить только одна задача одновременно. Вот очень минималистичный пример того, как это может работать.

Мой разум мечется кругами, пытаясь придумать потокобезопасный способ сделать это.
публичный интерфейс IResource { } общедоступный класс TestResource: IResource { публичная недействительная печать() { Console.WriteLine("печать"); } } общедоступный класс ResourcePool { общедоступная асинхронная задача TryUseResource(обратный вызов Action, Токен CancellationToken = по умолчанию), где T: IResource { // ждем и запрашиваем ресурс, который не используется. // выполняем обратный вызов // отменяем использование ресурса } } общественный класс Рабочий { public async void ExecuteWork (пул ResourcePool) { ждут пул.TryUseResource((ресурс) => { ресурс.Печать(); }); } }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»