Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 关于HttpWebRequest';s EndGetResponse_C#_.net_Asynchronous_Httpwebrequest - Fatal编程技术网

C# 关于HttpWebRequest';s EndGetResponse

C# 关于HttpWebRequest';s EndGetResponse,c#,.net,asynchronous,httpwebrequest,C#,.net,Asynchronous,Httpwebrequest,我正在使用异步调用与服务器进行通信。我编写了一些组件来收集所有未经授权的请求,并在用户登录后重新发送它们。我编写了一些测试来生成10个线程,这些线程在未经授权的情况下发送一些请求。然后我等待20秒并进行授权,然后等待请求成功完成。但问题出现在我在回调方法中调用的EndGetResponse方法上。我是这样做的: public void InternalCallback(IAsyncResult result) { try { RequestState state

我正在使用异步调用与服务器进行通信。我编写了一些组件来收集所有未经授权的请求,并在用户登录后重新发送它们。我编写了一些测试来生成10个线程,这些线程在未经授权的情况下发送一些请求。然后我等待20秒并进行授权,然后等待请求成功完成。但问题出现在我在回调方法中调用的EndGetResponse方法上。我是这样做的:

public void InternalCallback(IAsyncResult result)
{
    try
    {
        RequestState state = (RequestState)result.AsyncState;
        IHttpWebRequest request = state.Request;    

        using (IHttpWebResponse response = responseGetter.GetResponse(request, result))
        {
           // ...
        }
     }
     // ...
}
所以,我创建了一些定制类RequestState,它有一些我需要的更高级别的回调,它有我将用来调用EndGetResponse方法的请求。但这样我得到了一个错误:

IAsyncResult object was not returned from the corresponding asynchronous method.
我改变了这一点,所以我现在在回调类中有了请求字段,我在调用BeginGetResponse之前设置了该字段,并且在回调中调用EndGetResponse时使用了该请求字段

public void InternalCallback(IAsyncResult result)
{
    try
    {                                   
        using (IHttpWebResponse response = responseGetter.GetResponse(this.Request, result))
        {
           // ...
        }
     }
     // ...
}
这个新的解决方案有效吗?你能建议这是一个好方法吗?或者我应该怎么做