Come posso utilizzare le parole chiave asincrone in un progetto targeting.net 4.0

Vorrei usare le parole chiave asincrone in un progetto che è stato creato in .net 4.0.

Se vado sul sito web nuget.org e cerco “async”, ho molti risultati, ma principalmente ottengo questo:

Visual Studio Async CTP (versione 3, non ufficiale) 0.3.0

AsyncAwaitCTP 1.0.0

Quali sono le differenze tra loro?

Vuoi il pacchetto Microsoft.Bcl.Async . Questo è un pacchetto non CTP correttamente rilasciato che è stabile. Ciò richiede anche VS2012 poiché è necessario un compilatore aggiornato per capire async e await .

In teoria si potrebbero usare strumenti più vecchi di VS2010 insieme alla vecchia libreria CTP, mi raccomando vivamente di non farlo – ha dei bug e l’installazione stessa è un hit-or-miss.

Ho scritto un plugin per .NET 4.5 usando async per un’applicazione .NET 4.0, e con mia sorpresa questo ha funzionato davvero!

Penso che questo abbia funzionato perché ho installato .NET 4.5, che ha sostituito il runtime .NET 4 con uno aggiornato, che è usato sia per .NET 4.0 che per .NET 4.5. Quindi il mio plugin è stato caricato con reflection usando Assembly.Load(...) o simili. Ho provato sia async/await che Environment.CurrentManagedThreadId (una proprietà .NET 4.5), ed entrambi hanno funzionato.