FileStream.EndRead (Método)
Ensamblado: mscorlib (en mscorlib.dll)
Parámetros
- asyncResult
Referencia a la solicitud asincrónica pendiente a la que se debe esperar.
Valor devuelto
El número de bytes leídos de la secuencia, que se encuentra entre 0 y el número de bytes solicitado. Las secuencias sólo devuelven 0 al final de la secuencia; de lo contrario, se deben bloquear hasta que haya al menos 1 byte disponible.| Tipo de excepción | Condición |
|---|---|
| asyncResult es referencia de objeto null (Nothing en Visual Basic). |
|
| Este objeto IAsyncResult no se ha creado llamando a BeginRead en esta clase. |
|
| Se llama varias veces a EndRead. |
Se debe llamar con exactitud a EndRead para cada llamada a BeginRead. Si no se finaliza un proceso de lectura antes de comenzar otra lectura se puede producir un comportamiento no deseado, como el interbloqueo.
Este método reemplaza a EndRead.
Se puede llamar a EndRead en cada IAsyncResult de BeginRead. Una llamada a EndRead indica cuántos bytes se leyeron de la secuencia. EndRead se bloqueará hasta que haya finalizado la operación de E/S.
En la siguiente tabla se muestran ejemplos de otras tareas de E/S típicas o relacionadas.
| Para realizar esta operación... | Vea el ejemplo de este tema... |
|---|---|
| Crear un archivo de texto | |
| Escribir en un archivo de texto | |
| Leer de un archivo de texto | |
| Anexar texto a un archivo | |
| Cambiar de nombre o mover un archivo | |
| Copiar un archivo | |
| Obtener el tamaño de un archivo | |
| Obtener los atributos de un archivo | |
| Establecer los atributos de un archivo | |
| Determinar si un archivo existe | |
| Leer de un archivo binario | |
| Escribir en un archivo binario | |
| Crear un directorio | Directory.CreateDirectory |
Este ejemplo de código forma parte de un ejemplo más extenso referente al constructor FileStream(String,FileMode,FileAccess,FileShare,Int32,Boolean).
static void EndReadCallback(IAsyncResult asyncResult) { State tempState = (State)asyncResult.AsyncState; int readCount = tempState.FStream.EndRead(asyncResult); int i = 0; while(i < readCount) { if(tempState.ReadArray[i] != tempState.WriteArray[i++]) { Console.WriteLine("Error writing data."); tempState.FStream.Close(); return; } } Console.WriteLine("The data was written to {0} and verified.", tempState.FStream.Name); tempState.FStream.Close(); // Signal the main thread that the verification is finished. tempState.ManualEvent.Set(); }
static void EndReadCallback(IAsyncResult asyncResult)
{
State tempState = ((State)(asyncResult.get_AsyncState()));
int readCount = tempState.get_FStream().EndRead(asyncResult);
int i = 0;
while((i < readCount)) {
if ( tempState.get_ReadArray()[i] !=
tempState.get_WriteArray()[i++] ) {
Console.WriteLine("Error writing data.");
tempState.get_FStream().Close();
return;
}
}
Console.WriteLine("The data was written to {0} and verified.",
tempState.get_FStream().get_Name());
tempState.get_FStream().Close();
// Signal the main thread that the verification is finished.
tempState.get_ManualEvent().Set();
} //EndReadCallback
Windows 98, Windows 2000 SP4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition
.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.