Getting the following exception with the latest stable version of
Xamarin.iOS:

System.ArgumentNullException: null handle
Parameter name: waitHandles
  at System.Threading.WaitHandle.CheckArray (System.Threading.WaitHandle[]
handles, Boolean waitAll) [0x0005a] in
/Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Threading/WaitHandle.cs:78
  at System.Threading.WaitHandle.WaitAny (System.Threading.WaitHandle[]
waitHandles, TimeSpan timeout, Boolean exitContext) [0x00000] in
/Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Threading/WaitHandle.cs:209
  at System.Threading.RegisteredWaitHandle.Wait (System.Object state)
[0x00019] in
/Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Threading/RegisteredWaitHandle.cs:71


when executing the following code:

                                                                
ThreadPool.RegisterWaitForSingleObject((asyncTask as
IAsyncResult).AsyncWaitHandle, 
                                                                                
                       new
WaitOrTimerCallback((state, timedOut) => { 
                                                                        
                                                                        try
                                                                        {
                                                                                
Console.WriteLine("Timeout: " + timedOut);
                                                                                
if (timedOut)
                                                                                
{
                                                                                
        Console.WriteLine("Timeout");
                                                                                
        WebRequest request = (WebRequest)state;
                                                                                
        if (state != null)
                                                                                
        {
                                                                                
                request.Abort();
                                                                                
        }
                                                                                
}
                                                                                
                                                                                
requestClass.request.Time = DateTime.Now -
requestClass.request.StartTime;
                                                                                
requestClass.requestCallback(HttpRequestResult.TimedOut);
                                                                        }
                                                                        finally
                                                                        {
                                                                                
Interlocked.Decrement(ref currentNumSimultaneousRequests);
                                                                        }
                                                                        
                                                                }), 
requestClass.webRequest, requestClass.request.TimeoutMilisecs,
true);
                                                                
asyncTask.ContinueWith(task =>
                                                                                
       {
                                                                        
                                                                        try
                                                                        {
                                                                                
requestClass.webResponse = (HttpWebResponse)task.Result;
                                                                                
                                                                                
requestClass.request.Time = DateTime.Now -
requestClass.request.StartTime;
                                                                                
                                                                                
dctRequestsInProgress.Remove(requestClass.request.Signature);
                                                                                
                                                                                
#if !DISTRIBUTION
                                                                                
                                                                                
Console.WriteLine("Made request : " + requestClass.request.Url + "
: Time = " + requestClass.request.Time.TotalSeconds.ToString() + " secs");
                                                                                
#endif
                                                                                
                                                                                
                                                                                
byte[] response = null;
                                                                                
HttpRequestResult result = HttpRequestResult.Success;
                                                                                
                                                                                
if (requestClass.webResponse != null)
                                                                                
{
                                                                                
        requestClass.statusCode = requestClass.webResponse.StatusCode;
                                                                                
}
                                                                                
                                                                                
requestClass.requestCallback(result);
                                                                        }
                                                                        finally
                                                                        {
                                                                                
Interlocked.Decrement(ref currentNumSimultaneousRequests);
                                                                                
                                                                        }
                                                                        
                                                                }, 
TaskContinuationOptions.NotOnFaulted);


Any ideas what's going on? This code used to work as far as I remember.

Dennis



--
View this message in context: 
http://monotouch.2284126.n4.nabble.com/System-ArgumentNullException-has-been-thrown-tp4658129.html
Sent from the MonoTouch mailing list archive at Nabble.com.
_______________________________________________
MonoTouch mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/monotouch

Reply via email to