让WebForm异步起来
发布日期:2021-05-14 04:37:33 浏览次数:18 分类:博客文章

本文共 4469 字,大约阅读时间需要 14 分钟。

���������������������������������������������������������������������������������������������IO������������������������������������������A���������IO���������������������������������������������A������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������A���������IO���������������������������������������������������������A���������������������������������������������������������������������������������������������MSDN������������������������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������WebForm������������������������������������������

���������������Asp.net������������������������������������������(���������������������������������������������)���

���������������������������������������������Async="true" ���������������������������������������������

���������������������������������������������������������AddOnPreRenderCompleteAsync���RegisterAsyncTask

���������������AddOnPreRenderCompleteAsync������������������������

using System; using System.IO; namespace AsyncPagesApp {     public partial class _Default : System.Web.UI.Page     {         FileStream fileStream;  //���������          protected void Page_Load(object sender, EventArgs e)         {             if (IsPostBack) return;             fileStream = new FileStream(@"\\***\20111122_EXO.txt",FileMode.Open); //���������������               AddOnPreRenderCompleteAsync(BeginAsyncOperation,EndAsyncOperation); //������������������         }         private IAsyncResult BeginAsyncOperation(object sender, EventArgs e, AsyncCallback cb, object state) //������������         {             int bufferSize = 99999999;             byte[] buffer = new byte[bufferSize];             return fileStream.BeginRead(buffer,0,bufferSize,cb,state);         }         private void EndAsyncOperation(IAsyncResult ar) //������������         {             int fileReadByte = (int)fileStream.EndRead(ar);  //������������������������             fileStream.Flush();             fileStream.Close(); //���������             Label1.Text = fileReadByte.ToString();         }     } }

������RegisterAsyncTask������������������������

using System; using System.Web.UI; using System.IO; namespace AsyncPagesApp {     public partial class RegisterAsyncTaskPage : System.Web.UI.Page     {         FileStream fileStream;         protected void Page_Load(object sender, EventArgs e)         {             if (IsPostBack) return;             //���������������������             fileStream = new FileStream(@\\***\20111122_EXO.txt, FileMode.Open);              //������������������             PageAsyncTask task = new PageAsyncTask(BeginAsync,EndAsync,TimeoutAsync,true);             //������������������             RegisterAsyncTask(task);             //������������             ExecuteRegisteredAsyncTasks();         }         //������������         protected IAsyncResult BeginAsync(object sender, EventArgs e, AsyncCallback cb, object state)         {             int bufferSize = 99999999;             byte[] buffer = new byte[bufferSize];             return fileStream.BeginRead(buffer, 0, bufferSize, cb, state);         }         //������������         protected void EndAsync(IAsyncResult ar)         {             int fileReadByte = (int)fileStream.EndRead(ar);  //������������             fileStream.Flush();             fileStream.Close();//������             Label1.Text = fileReadByte.ToString();         }         protected void TimeoutAsync(IAsyncResult ar)         {             Label1.Text = "server Invalid! ";             fileStream.Close();         }     } }

���������������������������������������������������������������������������������������������������������������������������������������Begin***���End***���������������������������������������������������������������������������������������������������������������������������������������������������������������User.Identity.Name������������������������������������������������������������������������������������������������������������������������������������������������������True���������������������������������������������

上一篇:.Net连接Sybase数据库的几种方法[转]
下一篇:异步调用之精简方式

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月28日 23时13分52秒