Background GC happens on a separate thread already - that's why it's "background" - but there is part of the GC lifecycle that must block all threads in the process (not just the main thread) to complete - it's an unavoidable necessity that MS has worked to minimize - you can facilitate it in your code by being as smart with your own object lifecycles, using look aside lists instead of large amounts of new/disposes, etc.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…