Questa documentazione è stata archiviata e non viene gestita.

Metodo FileStream.EndRead

Attende il completamento della lettura asincrona in sospeso.

Spazio dei nomi: System.IO
Assembly: mscorlib (in mscorlib.dll)

public override int EndRead (
	IAsyncResult asyncResult
)
public int EndRead (
	IAsyncResult asyncResult
)
public override function EndRead (
	asyncResult : IAsyncResult
) : int

Parametri

asyncResult

Riferimento alla richiesta asincrona in sospeso da attendere.

Valore restituito

Numero di byte letti dal flusso, tra 0 e il numero di byte richiesto. I flussi restituiscono solo 0 alla fine del flusso; in caso contrario, è necessario che effettuino un blocco fino a quando sia disponibile almeno 1 byte.

Tipo di eccezioneCondizione

ArgumentNullException

asyncResult è riferimento null (Nothing in Visual Basic).

ArgumentException

L'oggetto IAsyncResult non è stato creato mediante una chiamata al metodo BeginRead su tale classe.

InvalidOperationException

Il metodo EndRead viene chiamato più volte.

EndRead deve essere chiamato esattamente per ogni chiamata al metodo BeginRead. Eventuali errori nel completamento di un processo di lettura prima dell'inizio di un'altra lettura potrebbero causare comportamenti indesiderati, quali deadlock.

Questo metodo esegue l'override del metodo EndRead.

È possibile chiamare EndRead su ogni IAsyncResult da BeginRead. La chiamata a EndRead notifica il numero di byte letti dal flusso. EndRead sarà bloccato fino al completamento dell'operazione di I/O.

Nella tabella che segue vengono elencati esempi di altre attività di I/O tipiche o correlate.

Per eseguire questa operazione...

Vedere l'esempio in questo argomento...

Creazione di un file di testo.

Procedura: scrivere testo su un file

Scrittura in un file di testo.

Procedura: scrivere testo su un file

Lettura da un file di testo.

Procedura: leggere testo da un file

Aggiunta di testo a un file.

Procedura: aprire e accodare un file di log

File.AppendText

FileInfo.AppendText

Ridenominazione o spostamento di un file.

File.Move

FileInfo.MoveTo

Copia di un file.

File.Copy

FileInfo.CopyTo

Acquisizione della dimensione di un file.

FileInfo.Length

Acquisizione degli attributi di un file.

File.GetAttributes

Impostazione degli attributi di un file.

File.SetAttributes

Determinazione dell'esistenza di un file.

File.Exists

Lettura da un file binario.

Procedura: leggere e scrivere su un file di dati appena creato

Scrittura in un file binario.

Procedura: leggere e scrivere su un file di dati appena creato

Creazione di una directory.

Directory.CreateDirectory

Directory.CreateDirectory

Questo esempio di codice fa parte di un esempio più esaustivo fornito per il costruttore 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 Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

.NET Framework

Supportato in: 2.0 1.1 1.0

.NET Compact Framework

Supportato in: 2.0 1.0
Mostra: