2013-10-17 11 views
21

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

Se vado al sito nuget.org e non vedo per "asincrono", i molti risultati, ma soprattutto ottengo questo:

Visual Studio Async CTP (Version 3, Unofficial) 0.3.0

AsyncAwaitCTP 1.0.0

Qual è la differenza tra entrambi?

+0

Si prega di riaprire la domanda: la domanda è "come posso usare le parole chiave asincrone in un progetto che punta a .Net 4.0" che non è offtopico. Questa domanda non è "per favore raccomanda una biblioteca per il compito blah"; la domanda è "come posso ottenere il compito blah". – MarkJ

risposta

39

Si desidera il pacchetto Microsoft.Bcl.Async. Questo è un pacchetto non CTP correttamente rilasciato che è stabile. Ciò richiede anche VS2012 poiché è necessario un compilatore aggiornato per comprendere 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.

+0

Sto usando VS2010. Se non sbaglio, questo è solo per VS2012 e non funziona con VS2010. non è vero? –

+1

@ ÁlvaroGarcía, puoi facilmente provarlo. –

+3

@ ÁlvaroGarcía: Probabilmente il pacchetto nuget verrà probabilmente installato, ma non sarà possibile utilizzare async/attendere con esso, perché è una funzione * lingua *. Mentre tu * potresti * ancora il CTP, ti consiglio vivamente di non farlo - ha dei bug. Dovresti davvero mordere il proiettile e aggiornare a VS2012. –

0

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

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

Problemi correlati