473,387 Members | 1,423 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

Call to PageAsyncTask Times Out Every Time

Hi,

I've been struggling with this today, I'm developing a DotNet2.0 website in C# that needs to call a long running data query. Obviously this is a good candidate for an Asynchronous call, so the page can carry on rendering whilst the call is taking place and also returning the ASP.NET worker thread to service another page request (for scalability). I have developed a very basic asynchronous object (for testing, that reproduces the same error as my long running query object). Code for the object is as follows:

==========================================
using System;
using System.Threading;

public class TestAsyncClass
{
public TestAsyncClass(){}

private delegate string InvokeTest();
private InvokeTest deleg;

public string Test()
{
Thread.Sleep(1000);
return "Hello, World!";
}

public IAsyncResult BeginTest()
{
deleg = new InvokeTest(Test);
return deleg.BeginInvoke(null, null);
}

public string EndTest( IAsyncResult asyncResult)
{
return deleg.EndInvoke(asyncResult);
}
}
==========================================
The above class can be called from a very basic ASP.NET page as follows:

==========================================
TestAsyncClass testAsyncClass = new TestAsyncClass();

protected void Page_Load(object sender, EventArgs e)
{
IAsyncResult iasyncResult = testAsyncClass.BeginTest();
while (!iasyncResult.IsCompleted)
{
Response.Write("<Br>...Waiting");
Thread.Sleep(500);
}
Response.Write("<Br>" + testAsyncClass.EndTest(iasyncResult));
}
==========================================

As I'd expect, it produces the following:

...Waiting
...Waiting
Hello, World!
However, I don't think the above is really doing what I want, as it ties up the page waiting for it to finish. If I attempt to call the async class using the code below, which I believe will free up the page to do other stuff, then the request always times out (which is my problem).

==========================================
TestAsyncClass testAsyncClass = new TestAsyncClass();

protected void Page_Load(object sender, EventArgs e)
{
PageAsyncTask task = new PageAsyncTask(BeginTest, EndTest, TestTimedOut, null, true);
Page.AsyncTimeout = new TimeSpan(0, 0, 5);
Page.RegisterAsyncTask(task);
}

public IAsyncResult BeginTest(object sender, EventArgs e, AsyncCallback callBack, object extraData)
{
Response.Write("<Br><Br>Calling Begin Test");
return testAsyncClass.BeginTest();
}

public void EndTest(IAsyncResult result)
{
Response.Write("<Br>...Successful: ");
Response.Write( testAsyncClass.EndTest( result));
}

public void TestTimedOut(IAsyncResult result)
{
Response.Write("<Br>...Timed Out");
Response.End();
}
==========================================

Produces the following:

Calling Begin Test
...Timed Out

I don't think I'm passing the IAsyncResult around properly or I'm confusing the two Asynchronous calls. I'm pretty sure that the issue is in my object "TestAsyncClass()" as my the above web page code using "PageAsyncTask" is pretty much ripping off any example call to "SqlCommand.BeginExecuteReader()" and "SqlCommand.EndExecuteReader()". Can anyone throw any light on the problem / tell me the error of my ways. Note: the only change I made to the web page, other than "Page_Load()" is to add Async="true" to the @Page declaration.

Thanks in advance,

- Paul.
Jul 19 '06 #1
4 3203
Paul,
I suspect the issue here is more one of user misinformation than anything
wrong with your code. ASP.NET Web pages don't behave like a Windows Form with
an asynchronous method kicked off. The Page lifecycle is basically halted
until the callback returns. So you should not expect some magical page
rendering and UI visible with your async task happily humming off in the
background somehow.

If you look up Fritz Onion's blog, he has written quite a bit about this and
it should help.
Peter

--
Co-founder, Eggheadcafe.com developer portal:
http://www.eggheadcafe.com
UnBlog:
http://petesbloggerama.blogspot.com


"Paul" wrote:
Hi,

I've been struggling with this today, I'm developing a DotNet2.0 website in C# that needs to call a long running data query. Obviously this is a good candidate for an Asynchronous call, so the page can carry on rendering whilst the call is taking place and also returning the ASP.NET worker thread to service another page request (for scalability). I have developed a very basic asynchronous object (for testing, that reproduces the same error as my long running query object). Code for the object is as follows:

==========================================
using System;
using System.Threading;

public class TestAsyncClass
{
public TestAsyncClass(){}

private delegate string InvokeTest();
private InvokeTest deleg;

public string Test()
{
Thread.Sleep(1000);
return "Hello, World!";
}

public IAsyncResult BeginTest()
{
deleg = new InvokeTest(Test);
return deleg.BeginInvoke(null, null);
}

public string EndTest( IAsyncResult asyncResult)
{
return deleg.EndInvoke(asyncResult);
}
}
==========================================
The above class can be called from a very basic ASP.NET page as follows:

==========================================
TestAsyncClass testAsyncClass = new TestAsyncClass();

protected void Page_Load(object sender, EventArgs e)
{
IAsyncResult iasyncResult = testAsyncClass.BeginTest();
while (!iasyncResult.IsCompleted)
{
Response.Write("<Br>...Waiting");
Thread.Sleep(500);
}
Response.Write("<Br>" + testAsyncClass.EndTest(iasyncResult));
}
==========================================

As I'd expect, it produces the following:

...Waiting
...Waiting
Hello, World!
However, I don't think the above is really doing what I want, as it ties up the page waiting for it to finish. If I attempt to call the async class using the code below, which I believe will free up the page to do other stuff, then the request always times out (which is my problem).

==========================================
TestAsyncClass testAsyncClass = new TestAsyncClass();

protected void Page_Load(object sender, EventArgs e)
{
PageAsyncTask task = new PageAsyncTask(BeginTest, EndTest, TestTimedOut, null, true);
Page.AsyncTimeout = new TimeSpan(0, 0, 5);
Page.RegisterAsyncTask(task);
}

public IAsyncResult BeginTest(object sender, EventArgs e, AsyncCallback callBack, object extraData)
{
Response.Write("<Br><Br>Calling Begin Test");
return testAsyncClass.BeginTest();
}

public void EndTest(IAsyncResult result)
{
Response.Write("<Br>...Successful: ");
Response.Write( testAsyncClass.EndTest( result));
}

public void TestTimedOut(IAsyncResult result)
{
Response.Write("<Br>...Timed Out");
Response.End();
}
==========================================

Produces the following:

Calling Begin Test
...Timed Out

I don't think I'm passing the IAsyncResult around properly or I'm confusing the two Asynchronous calls. I'm pretty sure that the issue is in my object "TestAsyncClass()" as my the above web page code using "PageAsyncTask" is pretty much ripping off any example call to "SqlCommand.BeginExecuteReader()" and "SqlCommand.EndExecuteReader()". Can anyone throw any light on the problem / tell me the error of my ways. Note: the only change I made to the web page, other than "Page_Load()" is to add Async="true" to the @Page declaration.

Thanks in advance,

- Paul
Jul 19 '06 #2
Thanks for the response Peter, I had found Fritz's blog on these issues when
googling for possible solutions. I've tried both methods documented on his
site, first is using "AddOnPreRenderCompleteAsync()" and the second is using
the "RegisterAsyncTask()" - neither appear to work for me in this instance.
All of the examples use the BeginXXX and EndXXX async. methods of either a
web service or a SQL command object (including Fritz's). In my case I
believe the issue lies in my "TestAsyncClass" object, which is trying to
imitate the functionality that the BeginXXX and EndXXX methods in the async.
web service SQL commands implemenent. As I understand it, from the example
on Fritz's site using "RegisterAsyncTask()" (see
http://pluralsight.com/blogs/fritz/a...2/14/5861.aspx)

1. ASP Page creates amd registers a Async Task via the RegisterAsyncTask(),
these include a BeginXXX, EndXXX and TimeOutXXX events
2. The ASP Page calls all the BeginXXX events registered in 1 above.
3. The BeginXXX event in the web page calls the BeginXXX event in the async
class (a web service in this case)
4. The ASP work thread can now work on finishing the rest of the page,
returning to the pool if the page reaches a point where it is no longer
required before the Async call has returned.
5. The existing ASP work thread (or a new one if existing one was returned
to the pool in step above) starts up to service the EndXXX event when it
fires. This is where my knowledge is a little fuzzy. I guess the "EndXXX"
event fires in the asnyc class, which somehow calls / fires the EndXXX event
in the web page. In my code, only the TimeOutXXX event in the web page
fires, which would appear to indicate that the EndXXX events in my async
class and web page are not linked / working together.

Hopefully that helps to explain my issue a little futher and / or my
misunderstanding of the process as a whole. Problem is I just can't see how
the examples would work if my understanding of the process, whilst flaky, is
incorrect.

thanks,

- Paul.
"Peter Bromberg [C# MVP]" <pb*******@yahoo.nospammin.comwrote in message
news:2D**********************************@microsof t.com...
Paul,
I suspect the issue here is more one of user misinformation than anything
wrong with your code. ASP.NET Web pages don't behave like a Windows Form
with
an asynchronous method kicked off. The Page lifecycle is basically halted
until the callback returns. So you should not expect some magical page
rendering and UI visible with your async task happily humming off in the
background somehow.

If you look up Fritz Onion's blog, he has written quite a bit about this
and
it should help.
Peter

--
Co-founder, Eggheadcafe.com developer portal:
http://www.eggheadcafe.com
UnBlog:
http://petesbloggerama.blogspot.com


"Paul" wrote:
>Hi,

I've been struggling with this today, I'm developing a DotNet2.0 website
in C# that needs to call a long running data query. Obviously this is a
good candidate for an Asynchronous call, so the page can carry on
rendering whilst the call is taking place and also returning the ASP.NET
worker thread to service another page request (for scalability). I have
developed a very basic asynchronous object (for testing, that reproduces
the same error as my long running query object). Code for the object is
as follows:

==========================================
using System;
using System.Threading;

public class TestAsyncClass
{
public TestAsyncClass(){}

private delegate string InvokeTest();
private InvokeTest deleg;

public string Test()
{
Thread.Sleep(1000);
return "Hello, World!";
}

public IAsyncResult BeginTest()
{
deleg = new InvokeTest(Test);
return deleg.BeginInvoke(null, null);
}

public string EndTest( IAsyncResult asyncResult)
{
return deleg.EndInvoke(asyncResult);
}
}
==========================================
The above class can be called from a very basic ASP.NET page as follows:

==========================================
TestAsyncClass testAsyncClass = new TestAsyncClass();

protected void Page_Load(object sender, EventArgs e)
{
IAsyncResult iasyncResult = testAsyncClass.BeginTest();
while (!iasyncResult.IsCompleted)
{
Response.Write("<Br>...Waiting");
Thread.Sleep(500);
}
Response.Write("<Br>" + testAsyncClass.EndTest(iasyncResult));
}
==========================================

As I'd expect, it produces the following:

...Waiting
...Waiting
Hello, World!
However, I don't think the above is really doing what I want, as it ties
up the page waiting for it to finish. If I attempt to call the async
class using the code below, which I believe will free up the page to do
other stuff, then the request always times out (which is my problem).

==========================================
TestAsyncClass testAsyncClass = new TestAsyncClass();

protected void Page_Load(object sender, EventArgs e)
{
PageAsyncTask task = new PageAsyncTask(BeginTest, EndTest,
TestTimedOut, null, true);
Page.AsyncTimeout = new TimeSpan(0, 0, 5);
Page.RegisterAsyncTask(task);
}

public IAsyncResult BeginTest(object sender, EventArgs e, AsyncCallback
callBack, object extraData)
{
Response.Write("<Br><Br>Calling Begin Test");
return testAsyncClass.BeginTest();
}

public void EndTest(IAsyncResult result)
{
Response.Write("<Br>...Successful: ");
Response.Write( testAsyncClass.EndTest( result));
}

public void TestTimedOut(IAsyncResult result)
{
Response.Write("<Br>...Timed Out");
Response.End();
}
==========================================

Produces the following:

Calling Begin Test
...Timed Out

I don't think I'm passing the IAsyncResult around properly or I'm
confusing the two Asynchronous calls. I'm pretty sure that the issue is
in my object "TestAsyncClass()" as my the above web page code using
"PageAsyncTask" is pretty much ripping off any example call to
"SqlCommand.BeginExecuteReader()" and "SqlCommand.EndExecuteReader()".
Can anyone throw any light on the problem / tell me the error of my ways.
Note: the only change I made to the web page, other than "Page_Load()" is
to add Async="true" to the @Page declaration.

Thanks in advance,

- Paul

Jul 19 '06 #3
I tracked down the issue late last night, which was in my TestAsyncClass.
The call to the BeginTest() method was missing the two parameters
AsyncCallback and the object for extradata. The first of these fields
joins the callback function in the web page with the call back function in
my asynchronous class.

//public IAsyncResult BeginTest()
public IAsyncResult BeginTest(AsyncCallback callBack, object extraData)
{
deleg = new InvokeTest(Test);
//return deleg.BeginInvoke(null, null);
return deleg.BeginInvoke(callBack, extraData);
}

public IAsyncResult BeginTest(object sender, EventArgs e, AsyncCallback
callBack, object extraData)
{
Response.Write("<Br><Br>Calling Begin Test");

// return testAsyncClass.BeginTest();
return testAsyncClass.BeginTest(callBack, extraData);
}
"Paul" <no****@noone.comwrote in message
news:%2****************@TK2MSFTNGP05.phx.gbl...
Thanks for the response Peter, I had found Fritz's blog on these issues
when googling for possible solutions. I've tried both methods documented
on his site, first is using "AddOnPreRenderCompleteAsync()" and the second
is using the "RegisterAsyncTask()" - neither appear to work for me in this
instance. All of the examples use the BeginXXX and EndXXX async. methods
of either a web service or a SQL command object (including Fritz's). In
my case I believe the issue lies in my "TestAsyncClass" object, which is
trying to imitate the functionality that the BeginXXX and EndXXX methods
in the async. web service SQL commands implemenent. As I understand it,
from the example on Fritz's site using "RegisterAsyncTask()" (see
http://pluralsight.com/blogs/fritz/a...2/14/5861.aspx)

1. ASP Page creates amd registers a Async Task via the
RegisterAsyncTask(), these include a BeginXXX, EndXXX and TimeOutXXX
events
2. The ASP Page calls all the BeginXXX events registered in 1 above.
3. The BeginXXX event in the web page calls the BeginXXX event in the
async class (a web service in this case)
4. The ASP work thread can now work on finishing the rest of the page,
returning to the pool if the page reaches a point where it is no longer
required before the Async call has returned.
5. The existing ASP work thread (or a new one if existing one was returned
to the pool in step above) starts up to service the EndXXX event when it
fires. This is where my knowledge is a little fuzzy. I guess the
"EndXXX" event fires in the asnyc class, which somehow calls / fires the
EndXXX event in the web page. In my code, only the TimeOutXXX event in
the web page fires, which would appear to indicate that the EndXXX events
in my async class and web page are not linked / working together.

Hopefully that helps to explain my issue a little futher and / or my
misunderstanding of the process as a whole. Problem is I just can't see
how the examples would work if my understanding of the process, whilst
flaky, is incorrect.

thanks,

- Paul.
"Peter Bromberg [C# MVP]" <pb*******@yahoo.nospammin.comwrote in message
news:2D**********************************@microsof t.com...
>Paul,
I suspect the issue here is more one of user misinformation than anything
wrong with your code. ASP.NET Web pages don't behave like a Windows Form
with
an asynchronous method kicked off. The Page lifecycle is basically halted
until the callback returns. So you should not expect some magical page
rendering and UI visible with your async task happily humming off in the
background somehow.

If you look up Fritz Onion's blog, he has written quite a bit about this
and
it should help.
Peter

--
Co-founder, Eggheadcafe.com developer portal:
http://www.eggheadcafe.com
UnBlog:
http://petesbloggerama.blogspot.com


"Paul" wrote:
>>Hi,

I've been struggling with this today, I'm developing a DotNet2.0 website
in C# that needs to call a long running data query. Obviously this is a
good candidate for an Asynchronous call, so the page can carry on
rendering whilst the call is taking place and also returning the ASP.NET
worker thread to service another page request (for scalability). I have
developed a very basic asynchronous object (for testing, that reproduces
the same error as my long running query object). Code for the object is
as follows:

==========================================
using System;
using System.Threading;

public class TestAsyncClass
{
public TestAsyncClass(){}

private delegate string InvokeTest();
private InvokeTest deleg;

public string Test()
{
Thread.Sleep(1000);
return "Hello, World!";
}

public IAsyncResult BeginTest()
{
deleg = new InvokeTest(Test);
return deleg.BeginInvoke(null, null);
}

public string EndTest( IAsyncResult asyncResult)
{
return deleg.EndInvoke(asyncResult);
}
}
==========================================
The above class can be called from a very basic ASP.NET page as follows:

==========================================
TestAsyncClass testAsyncClass = new TestAsyncClass();

protected void Page_Load(object sender, EventArgs e)
{
IAsyncResult iasyncResult = testAsyncClass.BeginTest();
while (!iasyncResult.IsCompleted)
{
Response.Write("<Br>...Waiting");
Thread.Sleep(500);
}
Response.Write("<Br>" + testAsyncClass.EndTest(iasyncResult));
}
==========================================

As I'd expect, it produces the following:

...Waiting
...Waiting
Hello, World!
However, I don't think the above is really doing what I want, as it ties
up the page waiting for it to finish. If I attempt to call the async
class using the code below, which I believe will free up the page to do
other stuff, then the request always times out (which is my problem).

==========================================
TestAsyncClass testAsyncClass = new TestAsyncClass();

protected void Page_Load(object sender, EventArgs e)
{
PageAsyncTask task = new PageAsyncTask(BeginTest, EndTest,
TestTimedOut, null, true);
Page.AsyncTimeout = new TimeSpan(0, 0, 5);
Page.RegisterAsyncTask(task);
}

public IAsyncResult BeginTest(object sender, EventArgs e, AsyncCallback
callBack, object extraData)
{
Response.Write("<Br><Br>Calling Begin Test");
return testAsyncClass.BeginTest();
}

public void EndTest(IAsyncResult result)
{
Response.Write("<Br>...Successful: ");
Response.Write( testAsyncClass.EndTest( result));
}

public void TestTimedOut(IAsyncResult result)
{
Response.Write("<Br>...Timed Out");
Response.End();
}
==========================================

Produces the following:

Calling Begin Test
...Timed Out

I don't think I'm passing the IAsyncResult around properly or I'm
confusing the two Asynchronous calls. I'm pretty sure that the issue is
in my object "TestAsyncClass()" as my the above web page code using
"PageAsyncTask" is pretty much ripping off any example call to
"SqlCommand.BeginExecuteReader()" and "SqlCommand.EndExecuteReader()".
Can anyone throw any light on the problem / tell me the error of my
ways. Note: the only change I made to the web page, other than
"Page_Load()" is to add Async="true" to the @Page declaration.

Thanks in advance,

- Paul


Jul 20 '06 #4
Good follow-up information, Paul.
Peter
--
Co-founder, Eggheadcafe.com developer portal:
http://www.eggheadcafe.com
UnBlog:
http://petesbloggerama.blogspot.com


"Paul" wrote:
I tracked down the issue late last night, which was in my TestAsyncClass.
The call to the BeginTest() method was missing the two parameters
AsyncCallback and the object for extradata. The first of these fields
joins the callback function in the web page with the call back function in
my asynchronous class.

//public IAsyncResult BeginTest()
public IAsyncResult BeginTest(AsyncCallback callBack, object extraData)
{
deleg = new InvokeTest(Test);
//return deleg.BeginInvoke(null, null);
return deleg.BeginInvoke(callBack, extraData);
}

public IAsyncResult BeginTest(object sender, EventArgs e, AsyncCallback
callBack, object extraData)
{
Response.Write("<Br><Br>Calling Begin Test");

// return testAsyncClass.BeginTest();
return testAsyncClass.BeginTest(callBack, extraData);
}
"Paul" <no****@noone.comwrote in message
news:%2****************@TK2MSFTNGP05.phx.gbl...
Thanks for the response Peter, I had found Fritz's blog on these issues
when googling for possible solutions. I've tried both methods documented
on his site, first is using "AddOnPreRenderCompleteAsync()" and the second
is using the "RegisterAsyncTask()" - neither appear to work for me in this
instance. All of the examples use the BeginXXX and EndXXX async. methods
of either a web service or a SQL command object (including Fritz's). In
my case I believe the issue lies in my "TestAsyncClass" object, which is
trying to imitate the functionality that the BeginXXX and EndXXX methods
in the async. web service SQL commands implemenent. As I understand it,
from the example on Fritz's site using "RegisterAsyncTask()" (see
http://pluralsight.com/blogs/fritz/a...2/14/5861.aspx)

1. ASP Page creates amd registers a Async Task via the
RegisterAsyncTask(), these include a BeginXXX, EndXXX and TimeOutXXX
events
2. The ASP Page calls all the BeginXXX events registered in 1 above.
3. The BeginXXX event in the web page calls the BeginXXX event in the
async class (a web service in this case)
4. The ASP work thread can now work on finishing the rest of the page,
returning to the pool if the page reaches a point where it is no longer
required before the Async call has returned.
5. The existing ASP work thread (or a new one if existing one was returned
to the pool in step above) starts up to service the EndXXX event when it
fires. This is where my knowledge is a little fuzzy. I guess the
"EndXXX" event fires in the asnyc class, which somehow calls / fires the
EndXXX event in the web page. In my code, only the TimeOutXXX event in
the web page fires, which would appear to indicate that the EndXXX events
in my async class and web page are not linked / working together.

Hopefully that helps to explain my issue a little futher and / or my
misunderstanding of the process as a whole. Problem is I just can't see
how the examples would work if my understanding of the process, whilst
flaky, is incorrect.

thanks,

- Paul.
"Peter Bromberg [C# MVP]" <pb*******@yahoo.nospammin.comwrote in message
news:2D**********************************@microsof t.com...
Paul,
I suspect the issue here is more one of user misinformation than anything
wrong with your code. ASP.NET Web pages don't behave like a Windows Form
with
an asynchronous method kicked off. The Page lifecycle is basically halted
until the callback returns. So you should not expect some magical page
rendering and UI visible with your async task happily humming off in the
background somehow.

If you look up Fritz Onion's blog, he has written quite a bit about this
and
it should help.
Peter

--
Co-founder, Eggheadcafe.com developer portal:
http://www.eggheadcafe.com
UnBlog:
http://petesbloggerama.blogspot.com


"Paul" wrote:

Hi,

I've been struggling with this today, I'm developing a DotNet2.0 website
in C# that needs to call a long running data query. Obviously this is a
good candidate for an Asynchronous call, so the page can carry on
rendering whilst the call is taking place and also returning the ASP.NET
worker thread to service another page request (for scalability). I have
developed a very basic asynchronous object (for testing, that reproduces
the same error as my long running query object). Code for the object is
as follows:

==========================================
using System;
using System.Threading;

public class TestAsyncClass
{
public TestAsyncClass(){}

private delegate string InvokeTest();
private InvokeTest deleg;

public string Test()
{
Thread.Sleep(1000);
return "Hello, World!";
}

public IAsyncResult BeginTest()
{
deleg = new InvokeTest(Test);
return deleg.BeginInvoke(null, null);
}

public string EndTest( IAsyncResult asyncResult)
{
return deleg.EndInvoke(asyncResult);
}
}
==========================================
The above class can be called from a very basic ASP.NET page as follows:

==========================================
TestAsyncClass testAsyncClass = new TestAsyncClass();

protected void Page_Load(object sender, EventArgs e)
{
IAsyncResult iasyncResult = testAsyncClass.BeginTest();
while (!iasyncResult.IsCompleted)
{
Response.Write("<Br>...Waiting");
Thread.Sleep(500);
}
Response.Write("<Br>" + testAsyncClass.EndTest(iasyncResult));
}
==========================================

As I'd expect, it produces the following:

...Waiting
...Waiting
Hello, World!
However, I don't think the above is really doing what I want, as it ties
up the page waiting for it to finish. If I attempt to call the async
class using the code below, which I believe will free up the page to do
other stuff, then the request always times out (which is my problem).

==========================================
TestAsyncClass testAsyncClass = new TestAsyncClass();

protected void Page_Load(object sender, EventArgs e)
{
PageAsyncTask task = new PageAsyncTask(BeginTest, EndTest,
TestTimedOut, null, true);
Page.AsyncTimeout = new TimeSpan(0, 0, 5);
Page.RegisterAsyncTask(task);
}

public IAsyncResult BeginTest(object sender, EventArgs e, AsyncCallback
callBack, object extraData)
{
Response.Write("<Br><Br>Calling Begin Test");
return testAsyncClass.BeginTest();
}

public void EndTest(IAsyncResult result)
{
Response.Write("<Br>...Successful: ");
Response.Write( testAsyncClass.EndTest( result));
}

public void TestTimedOut(IAsyncResult result)
{
Response.Write("<Br>...Timed Out");
Response.End();
}
==========================================

Produces the following:

Calling Begin Test
...Timed Out

I don't think I'm passing the IAsyncResult around properly or I'm
confusing the two Asynchronous calls. I'm pretty sure that the issue is
in my object "TestAsyncClass()" as my the above web page code using
"PageAsyncTask" is pretty much ripping off any example call to
"SqlCommand.BeginExecuteReader()" and "SqlCommand.EndExecuteReader()".
Can anyone throw any light on the problem / tell me the error of my
ways. Note: the only change I made to the web page, other than
"Page_Load()" is to add Async="true" to the @Page declaration.

Thanks in advance,

- Paul


Jul 21 '06 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: Hubert Baumeister | last post by:
Fifth International Conference on eXtreme Programming and Agile Processes in Software Engineering XP2004 June 6-10, 2004, Garmisch-Partenkirchen, Germany http://www.xp2004.org/
1
by: Marcin Floryan | last post by:
Hello! My question regards opening (and re-opening) Form and the Load event. I have a main form (frmMain) and I also have a data form (frmData). In the main form I have created: Private...
13
by: Bern McCarty | last post by:
I have run an experiment to try to learn some things about floating point performance in managed C++. I am using Visual Studio 2003. I was hoping to get a feel for whether or not it would make...
1
by: globus | last post by:
Hi, I've a simple web service running on machine A , and a simple client running con machine B , both on a LAN. I wanted to test the response time. So i've made a simple continuous testing...
46
by: Steven T. Hatton | last post by:
I just read §2.11.3 of D&E, and I have to say, I'm quite puzzled by what it says. http://java.sun.com/docs/books/tutorial/essential/concurrency/syncrgb.html <shrug> -- NOUN:1. Money or...
4
by: Random | last post by:
Has anyone here implemented RegisterAsyncTask and PageAsyncTask to improve page performance on page databinding? The only samples I've been able to find on this involve using asynchronous...
2
by: =?Utf-8?B?S2FseWFu?= | last post by:
Hi, I have to make multiple calls (about 400K) to a webservice which returns a string. And currently it takes about a week to make all the calls. Instead of waiting for the webservice result ...
12
by: aaragon | last post by:
I have this scenario: several arrays for which I have their fixed values at compilation time. Now, at runtime I need to access a specific array depending on an integer but I want to avoid if and...
6
by: RandomElle | last post by:
Hi there I'm hoping someone can help me out with the use of the Eval function. I am using Access2003 under WinXP Pro. I can successfully use the Eval function and get it to call any function with...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.