Pergunta de entrevista da empresa Perk

Which ways provide .NET to synchronise threads? Which one would you use in which situation?