Pour arbitraire de la tâche-comme les types que vous avez associé dans la 2ème partie de votre question, vous devez inclure l' System.Threading.Tasks.Extensions
package.
La raison pour laquelle vous avez besoin de ces packages NuGet est parce que les nouvelles fonctionnalités du langage s'appuyer sur de nouveaux types ajouté à la .NET framework. Les nouveaux types que le langage C# caractéristiques dépendent de ne pas être "intégrée dans le cadre de" jusqu'à la prochaine version mineure libéré après 4.6.2 pour ne pas casser SemVer1. Donc, sauf si vous êtes la construction d'un projet à l'aide de la prochaine version du framework, vous aurez besoin d'utiliser les packages NuGet pour obtenir les caractéristiques de travail.
Ce n'est pas le même que celui des méthodes d'extension pour travailler dans un .NET 2.0 projet. Vous pouvez utiliser des méthodes d'extension, mais vous devez utiliser un package NuGet (ou ajouter le code vous-même) pour obtenir le type il s'appuie sur d'être ajouté à votre projet.
1: 4.7 ou 5.0, quoi qu'ils décident de l'appeler, si il y a un 4.6.3 il ne sera pas dans cette version parce que c'est pas une mise à jour mineure de la version bump, qui est une version du patch bosse et vous ne pouvez pas faire des changements de l'API dans un patch de la version bosse sans violer Sémantique de contrôle de version.