В цикле почтового ящика я читаю из блокирующих элементов коллекции, ранее сохраненных в такой коллекции.Поскольку я использую один и тот же цикл для записи в такую коллекцию, мне нужно запустить его как поток.
async { process(queue.Take()) } |> Aysync.Start
Выполнение всего моего кода происходит медленно (условно говоря), и я подозреваю, что причина в новойпоток, который я запускаю, хотя я запускал пул потоков с помощью
let toto = ThreadPool.SetMinThreads(300,300)
Еще один намек на то, что здесь может возникнуть спор, что если я запускаю только, когда очередь пуста (и блокирую весь раздел), явремя выполнения сильно варьируется, от 350 мс до 7 с, а если нет, то остается около 5–10 с.потоков здесь
Есть ли какая-то структура, которая уже занимается такой ситуацией (потребитель / производитель?), которую можно использовать внутри процессора почтовых ящиков?