hola a todos,
He estado estudiando un poco a cerca de la lectura
asincrona a través del metodo stream.BeginRead(...).
Tome como base el ejemplo que viene en un libro donde se
crea un stream para leer un fichero. La lectura de ese
fichero se hace con la funcion
inputStream.BeginRead(buffer,0,buffer.Length,
myCallBack,null);
donde mycallback tiene asociada un metodo OnReadComplete
() que se ejecuta cuanlo la lectura asincrona ha
terminado.Ese metodo mostraria en pantalla el contenido
del fichero
En el cuerpo de programa se ejecuta primero la funcion
anterior (lectura asincrona) y luego se ejecuta un
contador que escribe numeros en la pantalla.
Segun el libro la salida del programa tendria que ser:
1
2
3
...
100
contenido del fichero
101
102
Es decir, mientras se realiza la lectura, el programa
sigue ejecutandose y cuando se finaliza la lectura se
ejecuta el metodo OnReadComplete() mostrando el contenido
del fichero. Luego seguiria la ejecución del programa
hasta su fin.
Pues bien, el problema es que cuando ejecuto ese programa
en mi ordenador siempre me sale la siguiente salida:
contenido del fichero
1
2
3
...
Es decir que realmente no hay una lectura asincrona y
hasta que no se finaliza la lectura el progama principal
no se ejecuta
¿porque podria ser esto?
Muchas gracias de antemano.
Leer las respuestas