Thread
и QueueUserWorkItem
являются самыми низкими доступными API для потоковой передачи . Я бы не использовал их, если бы у меня, наконец, не было другого выбора. Попробуйте класс Task
для абстракции более высокого уровня. Подробнее см. В моем недавнем сообщении в блоге по теме .
Вы также можете использовать BlockingCollection
в качестве надлежащего очереди производителей / потребителей вместо того, чтобы пытаться для сборки один за другим с самыми низкими доступными API для синхронизации .
Повторное введение этих колес на удивление сложно. Я настоятельно рекомендую использовать классы, предназначенные для этого типа потребностей (Task
и BlockingCollection
, чтобы быть конкретными). Они встроены в платформу .NET 4.0, а доступны в качестве дополнения для .NET 3.5 .