Очередь с приоритетом сделать многопоточной - C#
Формулировка задачи:
Добрый день. Есть реализованная очередь с приоритетом. Реализованы операции вставки, извлечения и изменения приоритета. Теперь встала задача, чтобы сделать эту очередь многопоточной. Один поток должен создать очередь, добавлять туда элементы и изменять приоритет. Второй поток должен извлекать элементы. В потоках вообще полный ноль. Подскажите пожалуйста как это сделать. Если можно, на небольшом примере.
Решение задачи: «Очередь с приоритетом сделать многопоточной»
textual
Листинг программы
//сам список class PriorityList<TItem> { public void Add(int priority, TItem item){//добавление} public TItem Get(){//достать самый верхний и удалить} public void ChPriority(int oldPriority, TItem, int newPriority){//изменение приоритета} } //управляющий класс public class Manager<TItem> { PriorityList<TItem> list = new PriorityList<TItem>(); private object locker = new object(); public void Add(TItem item) { lock(locker) { list.Add(item); } } public Titem Get() { Task<TItem> task1 = new Task<TItem>(()=>GetTask()); task1.Start(); return task1.Result; } private TItem GetTask() { lock(locker) { list.Get(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д