FtpWebRequest.EndGetRequestStream(IAsyncResult) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een asynchrone bewerking beëindigd die is gestart met BeginGetRequestStream(AsyncCallback, Object).
public:
override System::IO::Stream ^ EndGetRequestStream(IAsyncResult ^ asyncResult);
public override System.IO.Stream EndGetRequestStream(IAsyncResult asyncResult);
override this.EndGetRequestStream : IAsyncResult -> System.IO.Stream
Public Overrides Function EndGetRequestStream (asyncResult As IAsyncResult) As Stream
Parameters
- asyncResult
- IAsyncResult
Het IAsyncResult object dat werd geretourneerd toen de bewerking werd gestart.
Retouren
Een beschrijfbare Stream instantie die is gekoppeld aan dit exemplaar.
Uitzonderingen
asyncResult is null.
asyncResult is niet verkregen door te bellen BeginGetRequestStream(AsyncCallback, Object).
Deze methode is al aangeroepen voor de bewerking die is geïdentificeerd door asyncResult.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u een asynchrone bewerking beëindigt om de stroom van een aanvraag op te halen. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor het FtpWebRequest klasseoverzicht.
private static void EndGetStreamCallback(IAsyncResult ar)
{
FtpState state = (FtpState) ar.AsyncState;
Stream requestStream = null;
// End the asynchronous call to get the request stream.
try
{
requestStream = state.Request.EndGetRequestStream(ar);
// Copy the file contents to the request stream.
const int bufferLength = 2048;
byte[] buffer = new byte[bufferLength];
int count = 0;
int readBytes = 0;
FileStream stream = File.OpenRead(state.FileName);
do
{
readBytes = stream.Read(buffer, 0, bufferLength);
requestStream.Write(buffer, 0, readBytes);
count += readBytes;
}
while (readBytes != 0);
Console.WriteLine ("Writing {0} bytes to the stream.", count);
// IMPORTANT: Close the request stream before sending the request.
requestStream.Close();
// Asynchronously get the response to the upload request.
state.Request.BeginGetResponse(
new AsyncCallback (EndGetResponseCallback),
state
);
}
// Return exceptions to the main application thread.
catch (Exception e)
{
Console.WriteLine("Could not get the request stream.");
state.OperationException = e;
state.OperationComplete.Set();
return;
}
}
Opmerkingen
Als de bewerking niet is voltooid, wordt de EndGetRequestStream methode geblokkeerd totdat de bewerking is voltooid. Als u wilt bepalen of de bewerking is voltooid, controleert u de IsCompleted eigenschap voordat u aanroept EndGetRequestStream.
Naast de uitzonderingen die zijn vermeld in 'Uitzonderingen', worden uitzonderingen die zijn gegenereerd tijdens het openen van de stream voor schrijven opnieuw EndGetRequestStream gegooid.
Note
Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in the .NET Framework voor meer informatie.