FtpWebRequest.EndGetRequestStream(IAsyncResult) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Avslutar en väntande asynkron åtgärd som startats med 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
Parametrar
- asyncResult
- IAsyncResult
Objektet IAsyncResult som returnerades när åtgärden startades.
Returer
En skrivbar Stream instans som är associerad med den här instansen.
Undantag
asyncResult är null.
asyncResult hämtades inte genom att anropa BeginGetRequestStream(AsyncCallback, Object).
Den här metoden anropades redan för den åtgärd som identifierades av asyncResult.
Exempel
I följande kodexempel visas hur du avslutar en asynkron åtgärd för att hämta en begärans dataström. Det här kodexemplet är en del av ett större exempel som tillhandahålls för klassöversikten FtpWebRequest .
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;
}
}
Kommentarer
Om åtgärden inte har slutförts blockeras metoden tills åtgärden har slutförts EndGetRequestStream . Kontrollera egenskapen innan du anropar IsCompletedför att avgöra om åtgärden har slutförtsEndGetRequestStream.
Förutom de undantag som anges i "Undantag" EndGetRequestStream återanväxar undantag som utlöstes när strömmen öppnades för skrivning.
Note
Den här medlemmen matar ut spårningsinformation när du aktiverar nätverksspårning i ditt program. Mer information finns i Network Tracing i .NET Framework.