Possiedo un'applicazione che contiene un elenco di oggetti memorizzati in un pacchetto simultaneo statico.Alternativa concurrentBag nella libreria di classi portatili
L'interfaccia utente dispone di un timer che corre metodi che possono aggiornare gli oggetti nel ConcurrentBag.
solo thread (avviata dal timer) tenterà di aggiornare questi oggetti. Tuttavia questo thread enumererà l'elenco e quindi aggiornerà gli elementi man mano che procede.
Allo stesso tempo questi oggetti possono essere letti dal thread UI.
ConcurrentBag è perfettamente funzionante per quello che voglio fare. Tutta la logica di business è in un progetto separato e ora devo trasferire tutto su IOS e Android. Lo sto facendo con Xamarin e sto convertendo la logica di business in una libreria di classi portatili.
Anche se tutto quello che sto mira sembra sostenere ConcurrentBag, quando provo ad accedere in un PCL, System.Collections.Concurrent non è disponibile. Anche se scelgo solo .net 4.5 e versioni successive + windows store apps (Entrambi ho usato ConcurrentBags per)
Se esiste un'altra alternativa a ConcurrentBag o sto meglio creando solo progetti separati per ciascun sistema di destinazione?
Quale versione VS sono stai usando e quali target PCL scegli? Se per esempio seleziono * .NET 4 *, * Windows (App Store) 8 *, * Xamarin.Android * e * Xamarin.iOS * in VS2013 Update 2RC, posso utilizzare con successo 'ConcurrentBag' nel mio codice. Finché non scegli come target * Windows Phone * o * Silverlight *, penso che non dovresti avere problemi nell'utilizzare 'ConcurrentBag' nel tuo PCL. –
Grazie Anders. Sono attualmente sull'aggiornamento 1, quindi sto scaricando l'aggiornamento 2 ora per vedere se è d'aiuto. Sono tutte le versioni di Win Phone che non funzioneranno? – Oli
Ho appena controllato; Lo spazio dei nomi 'System.Collections.Concurrent' è * non * incluso in qualsiasi versione di WP, incluso 8.1. A proposito, sembra strano che tu non possa accedere a "ConcurrentBag" su VS 2013 Update 1 a patto di evitare i target WP/Silverlight? Hai ricontrollato che non funziona sull'Aggiornamento 1 anche quando scegli come target .NET 4, Windows (Store) 8, Xamarin.Android e Xamarin.iOS? –