PiZ*_*zL3 5 c# asynchronous httpwebrequest iasyncresult asynccallback
如何将IAsyncResult传递给AsyncCallback?
示例代码:
//Usage
var req = (HttpWebRequest)iAreq;
req.BeginGetResponse(new AsyncCallback(iEndGetResponse), req);
//Method
private void iEndGetResponse(IAsyncResult iA, bool iWantInToo) { /*...*/ }
Run Code Online (Sandbox Code Playgroud)
我想传递示例变量bool iWantInToo.我不知道如何添加它new AsyncCallback(iEndGetResponse).
Ree*_*sey 12
你必须使用对象状态来传递它.现在,你传入req参数 - 但是你可以传入一个包含它和布尔值的对象.
例如(使用.NET 4的元组 - 如果你在.NET <= 3.5,你可以使用自定义类或KeyValuePair,或类似):
var req = (HttpWebRequest)iAreq;
bool iWantInToo = true;
req.BeginGetResponse(new AsyncCallback(iEndGetResponse), Tuple.Create(req, iWantInToo));
//Method
private void iEndGetResponse(IAsyncResult iA)
{
Tuple<HttpWebRequest, bool> state = (Tuple<HttpWebRequest, bool>)iA.AsyncState;
bool iWantInToo = state.Item2;
// use values..
}
Run Code Online (Sandbox Code Playgroud)