Sto cercando di scrivere un'applicazione Silverlight utilizzando l'await/async 'modello' (usando SL5 e VS11), ma non riesco a selezionare il 'Genera Task-Based operazioni' nella configurazione di servizio , questo dovrebbe essere possibile (ancora)? Non riesco a trovare molti dettagli sul web (specifico per SL) ...Task-Based in Silverlight
risposta
Sono stato in grado di creare manualmente proxy di servizio asincrono basato su attività in Silverlight 5 e Visual Studio 2010.
Funziona come fascino.
Io personalmente preferisco per codificare i miei contratti e proxy del servizio manualmente, ma se vi piace usare generare riferimento servizio potete dare un'occhiata a this post - WCF + Tasks.
Com'è collegato alla funzionalità attesa/asincrona in VS11? (o CTP asincrona per quella materia?) –
Per quanto ne so, puoi usare async/attendere la sintassi con qualsiasi metodo che restituisca Task o Task
@ViktorZ o Void –
Penso che non sia supportato in Silverlight ma è possibile farlo da soli, Forse una libreria di classi portatile sarebbe un'altra soluzione per questo.
public class MyCServiceProxy
{
public static Task<ObservableCollection<MyC>> GetMyCs()
{
var tcs = new TaskCompletionSource<ObservableCollection<MyC>>();
var client = new MyCServiceClient();
client.GetMyCsCompleted += (s,e) => {};
client.GetMyCsAsync();
return tcs.Task;
}
}
Sono stato in grado di riprodurre la situazione: l'intera sezione "Client" della finestra di dialogo Impostazioni riferimento servizio è disattivata per i progetti SL. Potresti voler aprire un problema con Microsoft Connect solo per richiamarlo prima che venga rilasciato VS11. –
Grazie Stephen, quindi non ho bisogno di amministrare me stesso in un ospedale psichiatrico per questo :) –
Ho aggiunto un problema MS Connect per questo, nessuna attività ancora: https://connect.microsoft.com/VisualStudio/ feedback/dettagli/722368/await-async-pattern-in-sl5 –