Estoy escribiendo un contenedor en una biblioteca de terceros, y tiene un método para escanear los datos que administra. El método toma un método de devolución de llamada que llama para cada elemento en los datos que encuentra.Posible convertir llamadas de devolución de llamada en IEnumerable
p. Ej. El método es esencialmente: void Scan(Action<object> callback);
Quiero envolverlo y exponer un método como IEnumerable<object> Scan();
Es esto posible sin recurrir a un hilo separado para hacer la exploración real y un tampón?
¿Podría describir el flujo exacto en su biblioteca de terceros? Parece que ya está generando múltiples hilos. También tenga en cuenta que puede tener un delegado de multidifusión. Además, ¿cómo determina que el escaneo haya finalizado? – weismat
Para ser honesto, no puedo ver el valor de hacer esto. Si quieres hacer 'foreach (objeto obj en scannable.Scan()) {/ * hacer algo con obj * /}', es realmente mejor que 'scannable.Scan (obj => {/ * hacer algo con obj * /}); '? – Flynn1179
@weismat: no, no son hilos de desove, básicamente itera contra su almacén de datos internamente y llama a la devolución de llamada para cada registro. – Gareth