Начало потока для объекта не всегда целесообразно; у вас, вероятно, должно быть небольшое количество рабочих потоков, выбирающих элементы из списка (или, что лучше, Queue<T>
), синхронизирующих доступ к этому списку / очереди. Пример потокобезопасной очереди можно найти в этой теме .
Как только у вас будет рабочий элемент, не будет волшебной палочки для того, чтобы остальная часть написанного вами кода (для его обработки) была поточно-ориентированной. Разумным подходом, который делает вещи простыми, является неизменность - либо истинная неизменность (элементы не могут изменить), либо просто не изменяет объект . Конечно, вы можете реализовать блокировку вокруг рабочего элемента, но это помогает, только если all ваш код использует ту же стратегию блокировки, которую трудно применить.