Modificato per rendere la domanda più chiara.Il dardo si isola come lavoratore
Sto provando a lavorare con Isolates (o Web Workers) in Dart. Gli unici modi che riesco a trovare per comunicare tra thread principali e isolati sono inviare e chiamare & quindi dal thread principale. Ma questo è un buon modo per il thread principale di passare alcuni dati all'isolato.
Che cosa succede se voglio che l'isolato sia quello che genera informazioni? Come un motore di gioco che fa tutta la fisica in un lavoratore e poi invia informazioni mondiali aggiornate al thread principale? In JavaScript è possibile inviare dati in qualsiasi momento. C'è un modo efficiente in Dart? O devo ancora aspettare il thread principale per chiamarmi e poi passarci sopra?
P.S. Mi chiedo, chiama & poi bloccare il thread fino a quando la risposta è stata fatta o no?
Ma che cosa è se voglio che il mio isolato per generare/aggiornamento? Come un motore di gioco. Presumibilmente esegue tutti i calcoli e passa gli stati aggiornati dell'oggetto in-game. C'è un meccanismo efficiente per questo o devo costruirlo sopra gli isolati? – Pijusn
@Pius non è possibile inviare riferimenti in un isolato, tutti i dati elaborati vengono copiati come descritto qui http://api.dartlang.org/dart_isolate/SendPort.html#send –
Non sto parlando di riferimenti. Sto parlando di dati. Hai mai lavorato con i Web Worker in JavaScript? È possibile inviare dati dal lavoratore in qualsiasi momento. E tanto quanto vuoi. Il lavoratore può lavorare e inviare dati senza nemmeno ascoltare il thread principale mentre il thread principale potrebbe semplicemente ricevere dati utilizzando una funzione di callback. Sto parlando della funzione self.postMessage equivalente in isolare. – Pijusn