Hi.
I'm dealing with scenario when call to any web method ends up with timeout
and I try to add the user a chance to retry (wait a little bit)
My service proxy code looks like this:
AsyncCallback cb = new AsyncCallback(S erviceCallback) ;
IAsyncResult result1 = BeginInvoke(met hodName, parameters, cb, this);
if(result1.IsCo mpleted == false)
{
while(true)
{
bTO = result1.AsyncWa itHandle.WaitOn e(Timeout, true);
if(bTO == false)//time out occured
{
//display window and ask the user to wait a moment, user press
OK when it sure that web method finished
}
if(result1.IsCo mpleted)
break;
}
object[] ret = EndInvoke(resul t1);// error every time when time out
occured (bTO = false)
}
My scenario is following:
1. BeginInvoke initialize asynch web method call
2. WaitOne waits for Timeout miliseconds
3. WaitOne returns false because timeout occured, and wait screen is
displayed. When user close it the web methos is finished.
4. result1.IsCompl eted is true so I expect that EndInvoke shall return the
results but it throws excpetion "timeout" !!!. Why?
Everything works fine if timeout doesn't occure.
Thanks for any advise
Shark
I'm dealing with scenario when call to any web method ends up with timeout
and I try to add the user a chance to retry (wait a little bit)
My service proxy code looks like this:
AsyncCallback cb = new AsyncCallback(S erviceCallback) ;
IAsyncResult result1 = BeginInvoke(met hodName, parameters, cb, this);
if(result1.IsCo mpleted == false)
{
while(true)
{
bTO = result1.AsyncWa itHandle.WaitOn e(Timeout, true);
if(bTO == false)//time out occured
{
//display window and ask the user to wait a moment, user press
OK when it sure that web method finished
}
if(result1.IsCo mpleted)
break;
}
object[] ret = EndInvoke(resul t1);// error every time when time out
occured (bTO = false)
}
My scenario is following:
1. BeginInvoke initialize asynch web method call
2. WaitOne waits for Timeout miliseconds
3. WaitOne returns false because timeout occured, and wait screen is
displayed. When user close it the web methos is finished.
4. result1.IsCompl eted is true so I expect that EndInvoke shall return the
results but it throws excpetion "timeout" !!!. Why?
Everything works fine if timeout doesn't occure.
Thanks for any advise
Shark
Comment