Stream.BeginWrite-Methode
Beginnt einen asynchronen Schreibvorgang.
Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Overridable Function BeginWrite ( _
buffer As Byte(), _
offset As Integer, _
count As Integer, _
callback As AsyncCallback, _
state As Object _
) As IAsyncResult
'Usage
Dim instance As Stream
Dim buffer As Byte()
Dim offset As Integer
Dim count As Integer
Dim callback As AsyncCallback
Dim state As Object
Dim returnValue As IAsyncResult
returnValue = instance.BeginWrite(buffer, offset, count, callback, state)
public virtual IAsyncResult BeginWrite (
byte[] buffer,
int offset,
int count,
AsyncCallback callback,
Object state
)
public:
virtual IAsyncResult^ BeginWrite (
array<unsigned char>^ buffer,
int offset,
int count,
AsyncCallback^ callback,
Object^ state
)
public IAsyncResult BeginWrite (
byte[] buffer,
int offset,
int count,
AsyncCallback callback,
Object state
)
public function BeginWrite (
buffer : byte[],
offset : int,
count : int,
callback : AsyncCallback,
state : Object
) : IAsyncResult
Parameter
- buffer
Der Puffer, aus dem Daten geschrieben werden sollen.
- offset
Der Byteoffset im buffer, ab dem geschrieben werden soll.
- count
Die maximale Anzahl der zu schreibenden Bytes.
- callback
Ein optionaler asynchroner Rückruf, der nach Abschluss des Schreibvorgangs aufgerufen wird.
- state
Ein vom Benutzer bereitgestelltes Objekt, das diese asynchrone Schreibanforderung von anderen Anforderungen unterscheidet.
Rückgabewert
Ein IAsyncResult, das den asynchronen Schreibvorgang darstellt, der möglicherweise noch aussteht.
Ausnahmen
Ausnahmetyp | Bedingung |
---|---|
Es wurde versucht, einen asynchronen Schreibvorgang über das Ende des Streams hinaus durchzuführen, oder es ist ein Datenträgerfehler aufgetreten. |
|
Mindestens eines der Argumente ist ungültig. |
|
Es wurden Methoden aufgerufen, nachdem der Stream geschlossen wurde. |
|
Die aktuelle Stream-Implementierung unterstützt den Schreibvorgang nicht. |
Hinweise
Ein Beispiel für das Erstellen einer Datei und das Schreiben von Text in eine Datei finden Sie unter Gewusst wie: Schreiben von Text in eine Datei. Ein Beispiel für das Lesen von Text aus einer Datei finden Sie unter Gewusst wie: Lesen aus einer Textdatei. Ein Beispiel für das Lesen aus einer Binärdatei und das Schreiben in eine Binärdatei finden Sie unter Gewusst wie: Lesen und Schreiben einer neu erstellten Datendatei. Ein Beispiel für asynchrones Datei-E/A finden Sie unter Asynchrone Datei-E/A.
Die Standardimplementierung von BeginWrite für einen Stream ruft die Write-Methode synchron auf, sodass Write einige Streams blockieren kann. Instanzen von Klassen wie FileStream und NetworkStream unterstützen jedoch asynchrone Operationen ohne Einschränkungen, wenn die Instanzen asynchron geöffnet wurden. Daher führen Aufrufe von BeginWrite nicht zu einer Blockierung dieser Streams. Sie können BeginWrite überschreiben (z. B. mit asynchronen Delegaten), um asynchrones Verhalten zu ermöglichen.
Übergeben Sie das von der aktuellen Methode zurückgegebene IAsyncResult an EndWrite, um sicherzustellen, dass der Schreibvorgang abgeschlossen wird und die Ressourcen ordnungsgemäß freigegeben werden. Für jeden Aufruf von BeginWrite muss einmal EndWrite aufgerufen werden. Sie können dafür den gleichen Code verwenden, mit dem BeginWrite aufgerufen wurde, oder einen Rückruf an BeginWrite übergeben. Wenn während eines asynchronen Schreibvorgangs ein Fehler auftritt, wird erst dann eine Ausnahme ausgelöst, wenn EndWrite mit dem von dieser Methode zurückgegebenen IAsyncResult aufgerufen wird.
Wenn ein Stream nicht schreibgeschützt ist, wird er durch Schreiben am Ende des Streams erweitert.
Die aktuelle Position im Stream wird bei Ausgabe des asynchronen Lese- oder Schreibvorgangs aktualisiert, und nicht nach Abschluss des E/A-Vorgangs. Bei mehreren gleichzeitig erfolgenden asynchronen Anforderungen ist die Verarbeitungsreihenfolge der Anforderungen unbestimmt.
Verwenden Sie die CanWrite-Eigenschaft, um zu bestimmen, ob die aktuelle Instanz Schreibvorgänge unterstützt.
Wenn ein Stream geschlossen ist oder Sie ein ungültiges Argument übergeben, werden direkt bei BeginWrite Ausnahmen ausgelöst. Bei einer asynchronen Schreibanforderung auftretende Fehler, z. B. Fehler auf dem Datenträger während der E/A-Anforderung, treten im Thread des Threadpools auf und lösen beim Aufruf von EndWrite Ausnahmen aus.
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0, 1.0
Siehe auch
Referenz
Stream-Klasse
Stream-Member
System.IO-Namespace
EndWrite
CanWrite
Weitere Ressourcen
Datei- und Stream-E/A
Gewusst wie: Lesen aus einer Textdatei
Gewusst wie: Schreiben von Text in eine Datei
Asynchrone Datei-E/A