关于异步操作的问题

adow 2006-05-18 11:21:14
我第一次使用异步操作,我现在做一个下载网页的东西,我另外写了一个类来访问url地址,取得内容
public class RequestState
{
// This class stores the state of the request.
const int BUFFER_SIZE = 1024000;
public StringBuilder requestData;
public byte[] bufferRead;
public WebRequest request;
public WebResponse response;
public Stream responseStream;

public RequestState()
{
bufferRead = new byte[BUFFER_SIZE];
requestData = new StringBuilder("");
request = null;
responseStream = null;
}
}

public class Spider
{
public static ManualResetEvent allDone = new ManualResetEvent(false);

public void AsyncLoadPage(string url)
{
WebRequest request = WebRequest.Create(url);
RequestState state = new RequestState();
state.request = request;
IAsyncResult asyncresult = (IAsyncResult)request.BeginGetResponse(
new AsyncCallback(RespCallback), state);
allDone.WaitOne();
state.response.Close();
}
private static void RespCallback(IAsyncResult asynchronousResult)
{
RequestState state = asynchronousResult.AsyncState;
WebRequest request = state.request;
state.response = request.EndGetResponse(asynchronousResult);
Stream stream = state.response.GetResponseStream();
state.responseStream = stream;
StreamReader sr = new StreamReader(stream);
string htmlcode = sr.ReadToEnd();
allDone.Set();

}

}

然后在窗体调用:
private void butstart_Click(object sender, EventArgs e)
{
Spider spider = new Spider();
spider.AsyncLoadPage("http://www.imdb.com/title/tt0128853/");

}

问题在于,我是通过异步操作得到了数据了,可是我要如何才能在窗体的textbox上显示我抓到的内容呢。
请指教。
...全文
159 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
真相重于对错 2006-05-18
  • 打赏
  • 举报
回复
ms-help://MS.MSDNQTR.2003FEB.2052/cpguide/html/cpovrasynchronousprogrammingoverview.htm
adow 2006-05-18
  • 打赏
  • 举报
回复
-_-! atlas和这个有关吗?
eflea 2006-05-18
  • 打赏
  • 举报
回复
用atlas把
feiyun0112 2006-05-18
  • 打赏
  • 举报
回复
用delegate

public delegate void showhtmlDelegate(string strhtml);


string htmlcode = sr.ReadToEnd();
showhtmlDelegate s=new showhtmlDelegate(showhtml)
s.BeginInvoke(htmlcode ,null,null);

private void showhtml(string strhtml)
{
textbox1.test=strhtml;
}

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧