Sto scrivendo un wrapper su una libreria di terze parti e ha un metodo per scansionare i dati che gestisce. Il metodo accetta un metodo di richiamata che richiama ogni elemento nei dati che trova.È possibile attivare le chiamate di richiamata in IEnumerable
ad es. Il metodo è essenzialmente: void Scan(Action<object> callback);
voglio avvolgerla ed esporre un metodo come IEnumerable<object> Scan();
Questo è possibile senza ricorrere a un thread separato per fare la scansione reale e un buffer?
Puoi delineare il flusso esatto nella libreria di terze parti: sembra che stia già generando più thread. Inoltre, tieni presente che potresti avere un delegato Multicast. Inoltre, come stai determinando che la scansione è finita? – weismat
Per essere onesti, non riesco a vedere il valore nel fare ciò. Se vuoi fare 'foreach (object obj in scannable.Scan()) {/ * fai qualcosa con obj * /}', è davvero meglio di 'scannable.Scan (obj => {/ * fai qualcosa con obj * /}); '? – Flynn1179
@weismat: no, i suoi thread non generano spawning, in pratica itera contro il suo data store internamente e chiama il callback per ogni record. – Gareth