NetworkStream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Avvia una scrittura asincrona in un flusso.
public:
override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int size, AsyncCallback ^ callback, System::Object ^ state);
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int size, AsyncCallback callback, object state);
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginWrite (buffer As Byte(), offset As Integer, size As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Parametri
- buffer
- Byte[]
Matrice di tipo Byte che contiene i dati da scrivere in NetworkStream.
- offset
- Int32
Posizione in buffer per iniziare a inviare i dati.
- size
- Int32
Numero di byte da scrivere nell'oggetto NetworkStream.
- callback
- AsyncCallback
Delegato AsyncCallback che viene eseguito al BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) termine.
- state
- Object
Oggetto che contiene eventuali dati aggiuntivi definiti dall'utente.
Valori restituiti
Oggetto IAsyncResult che rappresenta la chiamata asincrona.
Eccezioni
Il buffer parametro è null.
Il offset parametro è minore di 0.
oppure
Il offset parametro è maggiore della lunghezza di buffer.
oppure
Il size parametro è minore di 0.
oppure
Il size parametro è maggiore della lunghezza di buffer meno il valore del offset parametro.
L'oggetto sottostante Socket è chiuso.
oppure
Si è verificato un errore durante la scrittura nella rete.
oppure
Si è verificato un errore durante l'accesso al socket.
L'oggetto NetworkStream è chiuso.
Commenti
Importante
Si tratta di un'API di compatibilità. Non è consigliabile usare i metodi APM (Begin/End) per il nuovo sviluppo. Usare invece gli equivalenti basati su attività.
È possibile passare un callback che implementa AsyncCallback a BeginWrite per ricevere una notifica sul completamento dell'operazione. Si noti che se lo stack di rete sottostante completa l'operazione in modo sincrono, il callback verrà eseguito inline, durante la chiamata a BeginWrite. In questo caso, la CompletedSynchronously proprietà sull'oggetto restituito verrà impostata IAsyncResult su true per indicare che il metodo è stato completato in modo sincrono. Utilizzare la AsyncState proprietà dell'oggetto IAsyncResult per ottenere l'oggetto di stato passato al BeginWrite metodo .
L'operazione BeginWrite deve essere completata chiamando il EndWrite metodo . In genere, il metodo viene richiamato dal delegato fornito AsyncCallback . EndWrite blocca il thread chiamante fino al completamento dell'operazione.
Note
Se si riceve un oggetto IOException, controllare la InnerException proprietà per determinare se è stata causata da un oggetto SocketException. In tal caso, utilizzare la ErrorCode proprietà per ottenere il codice di errore specifico.
Le operazioni di lettura e scrittura possono essere eseguite simultaneamente in un'istanza della NetworkStream classe senza la necessità di sincronizzazione. Finché è presente un thread univoco per le operazioni di scrittura e un thread univoco per le operazioni di lettura, non ci saranno interferenze incrociate tra thread di lettura e scrittura e non è necessaria alcuna sincronizzazione.