在asp.net页面中使用异步同步rss

有的时候我们需要在网页里读取论坛的信息,在传统ASP的时候我们使用的是JS或者是IFRAME,这两种方式都不是很方便,而且对搜索引擎不友好。现在有了.Net,我们有了另一种方式。

要求:论坛需要提供RSS支持。

代码如下:

#region task class
   //这是一个任务类,执行具体的任务
   public class RssAsyncTask
   {
     private String _rssContent;
     private AsyncTaskDelegate _dlgt;
     private string rssUrl;
     private bool _success;

     public bool IsSuccess
     {
       get
       {
         return _success;
       }
     }

     public RssAsyncTask(string rssUrl)
     {
       this.rssUrl = rssUrl;
     }

     // Create delegate.
     protected delegate void AsyncTaskDelegate();

     public String GetRssContent()
     {
       return _rssContent;
     }
     public void DoTheAsyncTask()
     {
       // Introduce an artificial delay to simulate a delayed
       // asynchronous task. Make this greater than the
       // AsyncTimeout property.
       WebClient wc = new WebClient();
       try
       {
         _rssContent = wc.DownloadString(rssUrl);
         _success = true;
       }
       catch (Exception e)
       {
         _rssContent = e.Message;
       }
       finally
       {
         wc.Dispose();
       }
       //Thread.Sleep(TimeSpan.FromSeconds(5.0));
     }

     // Define the method that will get called to
     // start the asynchronous task.
     public IAsyncResult OnBegin(object sender, EventArgs e,
       AsyncCallback cb, object extraData)
     {
       //_rssContent = "Beginning async task.";

       _dlgt = new AsyncTaskDelegate(DoTheAsyncTask);
       IAsyncResult result = _dlgt.BeginInvoke(cb, extraData);

       return result;
     }

     // Define the method that will get called when
     // the asynchronous task is ended.
     public void OnEnd(IAsyncResult ar)
     {
       //_rssContent = "Asynchronous task completed.";
       _dlgt.EndInvoke(ar);
     }

     // Define the method that will get called if the task
     // is not completed within the asynchronous timeout interval.
     public void OnTimeout(IAsyncResult ar)
     {
       _rssContent = "Ansynchronous task failed to complete " +
         "because it exceeded the AsyncTimeout parameter.";
     }
   }
   #endregion

时间: 2024-10-27 15:41:01

在asp.net页面中使用异步同步rss的相关文章

在asp.net页面中使用异步读取

asp.net|页面|异步 有的时候我们需要在网页里读取论坛的信息,在传统ASP的时候我们使用的是JS或者是IFRAME,这两种方式都不是很方便,而且对搜索引擎不友好.现在有了.Net,我们有了另一种方式. 要求:论坛需要提供RSS支持. 代码如下:     #region task class    //这是一个任务类,执行具体的任务    public class RssAsyncTask    {        private String _rssContent;        priv

固定表头-在ASP.NET页面中,固定DATAGRID表头出现的问题

问题描述 在ASP.NET页面中,固定DATAGRID表头出现的问题 使用DIV标签加js纯页面固定表头,实际上就是将表头获取出来填充到一个DIV中,问题就是如何将表头和表中的内容对齐,特别是在表中数据动态改变列宽不固定的时候

ASP.NET页面中去除VIEWSTATE视图状态乱码

首先声明下这篇文章:本文章的发表于2014-10-11日,原作者和版权所有:KoalaAPI(还是本人啦),原链接:http://www.cnblogs.com/KoalaAPI/p/4018727.html(曾被删除!) 保存页的所有视图状态信息和控件状态信息. 作者在早期参与的项目中曾遇到这样的需求:基于SEO技术的开发,当因为时没有接触的MVC框架的 Razor 引擎,所以只能用ASP.NET引擎,如果使用ASP.NET引擎的服务器端控件,那么在ASP.NET页面中就会生成 __Views

在ASP.NET页面中推荐使用覆写而不是事件处理

asp.net|页面 English Version: http://dflying.dflying.net/1/archive/101_prefer_overrides_to_event_handlers_in_aspnet_page.html 这个是我们熟悉的Page_Load()方法.实际上它是一个Event Handler,当定义在System.Web.UI.Page中的Load事件触发时,它开始执行. // use event handlerprotected void Page_Lo

ASP.NET页面中冻结DataGrid的列或头部

asp.net|datagrid|页面 ASP.NET页面中,有时候我们需要冻结datagrid中的某一列,比如显示的数据项过多时,我们需要让第一列不动,拖动横向滚动条时其他列隐藏,这时就需要冻结列了:另外,有时候也需要让datagrid的头部不动,拖动纵向滚动条时,下面的数据项可以滚动.在实现的过程中,其实就是用了css样式来控制,一起看一下. 要冻结哪一列,就把fixCol这个CSS加到HeaderStyle-CssClass和ItemStyle-CssClass--> <style ty

在ASP.NET页面中实现数据棒图

asp.net|数据|页面     棒图有时又称为"Bar"图.在我的上一篇文章<在ASP.net实现数据图表>中已经介绍了在浏览器看到的图表,一般都是图片文件.那么在ASP.NET中是否也可以生成这些图表?答案是肯定的,因为在ASP.NET中拥有了一个新功能--绘图功能,通过此功能就能够按照要实现的图表的模样来绘制,最后在客户端的浏览器中形成一个图片,从而显示出图表来.        本文就在上一篇文章的基础上,进一步介绍在ASP.NET页面中实现Bar图的具体方法.希望

如何在ASP.net页面中请求远程Web站点

问:如何在已有ASP.net页面中,去请求远程WEB站点,并能传参,且得到请求所响应的结果.用下边的小例子讲解具体功能的实现: 首先,我们想要请求远程站点,需要用到HttpWebRequest类,该类在System.Net命名空间中,所以需要引用一下.另外,在向请求的页面写入参数时需要用到Stream流操作,所以需要引用System.IO命名空间. 以下为Get请求方式: Uri uri = new Uri("http://www.cnsaiko.com/");//创建uri对象,指定

在ASP.NET页面中动态添加控件

今天被问到如何在ASP.NET 页面中动态创建一批控件,并且希望在后续代码 中能访问到这些动态创建的控件.我用下面的例子来解释这个问题 页面文件: <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title></title> </head> <body> <form id="form1&quo

在ASP.NET页面中实现数据饼图

在<在ASP.NET页面中实现数据棒图>中已经介绍了ASP.NET中数据棒图的绘制方法.前文已经说过,ASP.NET之所以能够在客户端浏览器中形成各种数据图片,是因为在ASP.NET中提供了绘图功能,具体的作法是先在服务器端创建一个Bitmap实例,然后利用ASP.NET中提供的绘图功能,按照要生成的图片的模样,进行绘制,最后把绘制好的实例以数据流的方式传送到客户端的浏览器上,并形成图片显示出来.本文要介绍的在ASP.NET页面中实现数据饼图采用的基本也是这种方法.饼图有时称为"Pi