FtpWebRequest.EndGetRequestStream(IAsyncResult) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
ile BeginGetRequestStream(AsyncCallback, Object)başlatılan bekleyen bir zaman uyumsuz işlemi sonlandırır.
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
Parametreler
- asyncResult
- IAsyncResult
IAsyncResult İşlem başlatıldığında döndürülen nesne.
Döndürülenler
Bu örnekle ilişkilendirilmiş yazılabilir Stream bir örnek.
Özel durumlar
asyncResult, null'e eşittir.
asyncResult çağrılarak BeginGetRequestStream(AsyncCallback, Object)elde edilemedi.
Bu yöntem tarafından asyncResulttanımlanan işlem için zaten çağrıldı.
Örnekler
Aşağıdaki kod örneği, isteğin akışını almak için zaman uyumsuz işlemi sonlandırmayı gösterir. Bu kod örneği, sınıfa genel bakış için FtpWebRequest sağlanan daha büyük bir örneğin parçasıdır.
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;
}
}
Açıklamalar
İşlem tamamlanmadıysa, EndGetRequestStream yöntem işlem tamamlanana kadar engeller. İşlemin tamamlanıp tamamlanmadığını belirlemek için çağırmadan EndGetRequestStreamönce özelliğini denetleyinIsCompleted.
"Özel durumlar" EndGetRequestStream bölümünde belirtilen özel durumlara ek olarak, akışı yazmak üzere açarken oluşan özel durumları yeniden oluşturur.
Uyarı
Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework'te Ağ İzleme.