FtpWebRequest.BeginGetRequestStream(AsyncCallback, Object) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Começa a abrir assíncronamente o fluxo de conteúdo de um pedido para escrita.
public:
override IAsyncResult ^ BeginGetRequestStream(AsyncCallback ^ callback, System::Object ^ state);
public override IAsyncResult BeginGetRequestStream(AsyncCallback? callback, object? state);
public override IAsyncResult BeginGetRequestStream(AsyncCallback callback, object state);
override this.BeginGetRequestStream : AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginGetRequestStream (callback As AsyncCallback, state As Object) As IAsyncResult
Parâmetros
- callback
- AsyncCallback
Um AsyncCallback delegado que faz referência ao método a invocar quando a operação estiver completa.
- state
- Object
Um objeto definido pelo utilizador que contém informação sobre a operação. Este objeto é passado para o callback delegado quando a operação termina.
Devoluções
Uma IAsyncResult instância que indica o estado da operação.
Exceções
Uma chamada anterior para este método ou GetRequestStream() ainda não foi concluída.
Não foi possível estabelecer uma ligação ao servidor FTP.
A Method propriedade não está definida para UploadFile.
Exemplos
O exemplo de código seguinte demonstra o início de uma operação assíncrona para obter o fluxo de um pedido. Este exemplo de código faz parte de um exemplo maior fornecido para a FtpWebRequest visão geral da classe.
// Command line arguments are two strings:
// 1. The url that is the name of the file being uploaded to the server.
// 2. The name of the file on the local machine.
//
public static void Main(string[] args)
{
// Create a Uri instance with the specified URI string.
// If the URI is not correctly formed, the Uri constructor
// will throw an exception.
ManualResetEvent waitObject;
Uri target = new Uri (args[0]);
string fileName = args[1];
FtpState state = new FtpState();
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(target);
request.Method = WebRequestMethods.Ftp.UploadFile;
// This example uses anonymous logon.
// The request is anonymous by default; the credential does not have to be specified.
// The example specifies the credential only to
// control how actions are logged on the server.
request.Credentials = new NetworkCredential ("anonymous","janeDoe@contoso.com");
// Store the request in the object that we pass into the
// asynchronous operations.
state.Request = request;
state.FileName = fileName;
// Get the event to wait on.
waitObject = state.OperationComplete;
// Asynchronously get the stream for the file contents.
request.BeginGetRequestStream(
new AsyncCallback (EndGetStreamCallback),
state
);
// Block the current thread until all operations are complete.
waitObject.WaitOne();
// The operations either completed or threw an exception.
if (state.OperationException != null)
{
throw state.OperationException;
}
else
{
Console.WriteLine("The operation completed - {0}", state.StatusDescription);
}
}
Observações
Deve completar a operação assíncrona chamando o EndGetRequestStream método. Tipicamente, EndGetRequestStream é chamado pelo método referenciado por callback. Para determinar o estado da operação, verifique as propriedades no IAsyncResult objeto devolvido por este método.
Este método não bloqueia enquanto se espera pelo fluxo. Para bloquear, chame GetRequestStream em vez deste método.
Para informações detalhadas sobre a utilização do modelo de programação assíncrona, veja Chamar Métodos Síncronos Assíncronos.
Note
Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Rastreamento de Rede no .NET Framework.
Notas para Chamadores
Este método gera tráfego de rede.