Wednesday, May 6, 2009

WebService Async invoke

Method 1

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web.Configuration;
using System.Data.OracleClient;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
private DataSet _ds;
private DataSet _ds1;
AS.AsyncSer _ws = new AS.AsyncSer();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//Response.Write("OtherGridStart" + DateTime.Now.Millisecond.ToString());
//SetOther();
// Hook PreRenderComplete event for data binding
this.PreRenderComplete +=
new EventHandler(Page_PreRenderComplete);
Response.Write("Begin" + DateTime.Now.Millisecond.ToString());
// Register async methods
AddOnPreRenderCompleteAsync(
new BeginEventHandler(BeginAsyncOperation),
new EndEventHandler(EndAsyncOperation)
);
AddOnPreRenderCompleteAsync(
new BeginEventHandler(BeginAsyncOperationOther),
new EndEventHandler(EndAsyncOperationOther)
);
Response.Write("End" + DateTime.Now.Millisecond.ToString());
Response.Flush();
}
}

IAsyncResult BeginAsyncOperationOther(object sender, EventArgs e,
AsyncCallback cb, object state)
{
Response.Write("OtherGridStart" + DateTime.Now.Millisecond.ToString());
_ws.Url = "http://localhost:2012/AsynService/AsyncSer.asmx"; //new Uri(Request.Url, "AsyncSer.asmx").ToString();
_ws.UseDefaultCredentials = true;
return _ws.BeginGetOther(cb, state);
}
void EndAsyncOperationOther(IAsyncResult ar)
{
Response.Write("OtherGridStart" + DateTime.Now.Millisecond.ToString());
_ds1 = _ws.EndGetOther(ar);
}

//private void SetOther()
//{
// DataSet dd;
// _ws.Url = "http://localhost:2012/AsynService/AsyncSer.asmx"; //new Uri(Request.Url, "AsyncSer.asmx").ToString();
// _ws.UseDefaultCredentials = true;
// dd = _ws.GetOther();
// GridView1.DataSource = dd;
// GridView1.DataBind();
// Response.Write("OtherGridEnd" + DateTime.Now.Millisecond.ToString());
//}

IAsyncResult BeginAsyncOperation(object sender, EventArgs e,
AsyncCallback cb, object state)
{
_ws.Url = "http://localhost:2012/AsynService/AsyncSer.asmx"; //new Uri(Request.Url, "AsyncSer.asmx").ToString();
_ws.UseDefaultCredentials = true;
return _ws.BeginGetInfo(cb, state);
}

void EndAsyncOperation(IAsyncResult ar)
{
Response.Write("Async Com" + DateTime.Now.Millisecond.ToString());
_ds = _ws.EndGetInfo(ar);
}
protected void Page_PreRenderComplete(object sender, EventArgs e)
{
dg.DataSource = _ds;
dg.DataBind();
GridView1.DataSource = _ds1;
GridView1.DataBind();
}
public override void Dispose()
{
if (_ws != null) _ws.Dispose();
base.Dispose();
}


}

Method 2

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OracleClient;
using System.IO;
using System.Text.RegularExpressions;
using System.Text;
using System.Net;
public partial class Default2 : System.Web.UI.Page
{
//private WebRequest _ws;
AS.AsyncSer _ws = new AS.AsyncSer();
protected void Page_Load(object sender, EventArgs e)
{
PageAsyncTask task = new PageAsyncTask(
new BeginEventHandler(BeginAsyncOperation),
new EndEventHandler(EndAsyncOperation),
new EndEventHandler(TimeoutAsyncOperation),
null
);
RegisterAsyncTask(task);
}
IAsyncResult BeginAsyncOperation(object sender, EventArgs e,
AsyncCallback cb, object state)
{
_ws.Url = "http://localhost:2012/AsynService/AsyncSer.asmx"; //new Uri(Request.Url, "AsyncSer.asmx").ToString();
_ws.UseDefaultCredentials = true;
//_ws = WebRequest.Create("http://localhost:2012/AsynService/AsyncSer.asmx");
return _ws.BeginGetOther(cb, state);
}
void EndAsyncOperation(IAsyncResult ar)
{
DataSet ds;
ds = _ws.EndGetOther(ar);
dg.DataSource = ds;
dg.DataBind();
}
void TimeoutAsyncOperation(IAsyncResult ar)
{
Response.Write("Data temporarily unavailable");
}
}

No comments:

Post a Comment