FtpWebRequest.EndGetRequestStream(IAsyncResult) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Ukončí čekající asynchronní operaci spuštěnou s 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
Parametry
- asyncResult
- IAsyncResult
Objekt IAsyncResult , který byl vrácen při spuštění operace.
Návraty
Zapisovatelná instance přidružená Stream k této instanci.
Výjimky
asyncResult je null.
asyncResult nebyl získán voláním BeginGetRequestStream(AsyncCallback, Object).
Tato metoda byla již volána pro operaci identifikovanou asyncResult.
Příklady
Následující příklad kódu ukazuje ukončení asynchronní operace pro získání streamu požadavku. Tento příklad kódu je součástí většího příkladu FtpWebRequest , který je k dispozici pro přehled třídy.
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;
}
}
Poznámky
Pokud operace není dokončena, metoda blokuje, EndGetRequestStream dokud se operace nedokončí. Chcete-li zjistit, zda operace byla dokončena, zkontrolujte IsCompleted vlastnost před voláním EndGetRequestStream.
Kromě výjimek, které jsou uvedeny v části Výjimky, EndGetRequestStream znovu zvětšují výjimky, které byly vyvolány při otevírání datového proudu pro zápis.
Poznámka:
Tento člen vypíše informace o trasování, když ve své aplikaci povolíte trasování sítě. Další informace naleznete v tématu Trasování sítě v rozhraní .NET Framework.