异步读http数据时候发生的一个有关问题
异步读http数据时候发生的一个问题
我在网上找了一个 异步类
用BeginGetResponse和BeginRead 来异步读数据
然后我在成功完成后和 异常时候都触发一个事件
但是现在发现我调用这个类的时候, 多次引发事件. 怎样才能保证发生错误后 只会引发一个错误事件?
代码如下
我在网上找了一个 异步类
用BeginGetResponse和BeginRead 来异步读数据
然后我在成功完成后和 异常时候都触发一个事件
但是现在发现我调用这个类的时候, 多次引发事件. 怎样才能保证发生错误后 只会引发一个错误事件?
代码如下
using System;
using System.Net;
using System.IO;
using System.Text;
using System.Threading;
//http://api.map.baidu.com/geocoder?output=json&location=xxxxxx,xxxxxx&key=37492c0ee6f924cb5e934fa08c6b1676
//URLEncoder.encode
namespace ManagerServer
{
public class HttpWebRequest_BeginGetResponse
{
public class RequestState
{
// This class stores the State of the request.
const int BUFFER_SIZE = 1024;
public System.Text.Encoder CharacterSet;
public StringBuilder requestData;
public byte[] BufferRead;
public HttpWebRequest request;
public HttpWebResponse response;
public Stream streamResponse;
public RequestState()
{
BufferRead = new byte[BUFFER_SIZE];
requestData = new StringBuilder(" ");
request = null;
streamResponse = null;
}
}
public static ManualResetEvent allDone = new ManualResetEvent(false);
const int BUFFER_SIZE = 1024;
const int DefaultTimeout = 2 * 60 * 1000; // 2 minutes timeout
public delegate void ReadOverHandler(StringBuilder requestData, object exobject);
//public delegate void ReadOverHandler(StringBuilder requestData,int smstype);
public event ReadOverHandler ReadOver;
public object smstype = 0;
public HttpWebRequest_BeginGetResponse()
{