如何在 BeginGetRequestStream (C#) 中使用参数调用 AsyncCallback
How to call AsyncCallback with a parameter in an BeginGetRequestStream (C#)
public void SendPost(string code)
{
// Create the web request object
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(Resource.Url);
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
//Start the request
webRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), webRequest);
}
我想调用带参数的 GetRequestStreamCallback。
有人知道怎么做吗?
使用 lambda 而不是方法组。
即:
webRequest.BeginGetRequestStream(new AsyncCallback(result => GetRequestStreamCallback(result, someParameter)), webRequest);
使用 GetRequestStreamAsync 而不是 BeginGetRequestStream。有了它,您可以使用 async/await
关键字等待操作异步完成并继续执行:
public async Task SendPost(string code)
{
// Create the web request object
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(Resource.Url);
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
//Start the request
var stream=await webRequest.GetRequestStream(webRequest);
MyStreamProcessingMethod(stream);
...
}
GetRequestStreamAsync
和 async/await
在所有受支持的 .NET 版本中可用。
public void SendPost(string code)
{
// Create the web request object
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(Resource.Url);
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
//Start the request
webRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), webRequest);
}
我想调用带参数的 GetRequestStreamCallback。
有人知道怎么做吗?
使用 lambda 而不是方法组。
即:
webRequest.BeginGetRequestStream(new AsyncCallback(result => GetRequestStreamCallback(result, someParameter)), webRequest);
使用 GetRequestStreamAsync 而不是 BeginGetRequestStream。有了它,您可以使用 async/await
关键字等待操作异步完成并继续执行:
public async Task SendPost(string code)
{
// Create the web request object
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(Resource.Url);
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
//Start the request
var stream=await webRequest.GetRequestStream(webRequest);
MyStreamProcessingMethod(stream);
...
}
GetRequestStreamAsync
和 async/await
在所有受支持的 .NET 版本中可用。