Ответ 1
- Concurrent GC отлично справится с параллельными вычислениями. Он работает внутри собственного выделенного потока, поэтому он уже работает с другими потоками. Сама среда выполнения выполняет любую необходимую вам синхронизацию.
- В общем, вам не стоит об этом беспокоиться. Красота GC - это то, что вам редко приходится беспокоиться о деталях ее реализации. Единственный раз, когда я буду беспокоиться об этом, больше, если вы профилируете и обнаружите, что большая часть вашего времени обработки тратится в GC. Однако это не совсем специфично для одной формы GC, а скорее для общего профилирования и использования памяти в целом.
Как сказано, в .NET 4 был добавлен новый "Background GC". Существует подробное сообщение, описывающее это здесь, а также этот видеоролик Канала 9.