Esempio n. 1
0
        public static T EndOperation <T>(IAsyncResult result)
        {
            DynamoDBAsyncResult asyncResult = result as DynamoDBAsyncResult;

            if (asyncResult == null)
            {
                return(default(T));
            }

            using (asyncResult)
            {
                if (!asyncResult.CompletedSynchronously)
                {
                    WaitHandle.WaitAll(new WaitHandle[] { asyncResult.AsyncWaitHandle });
                }

                if (asyncResult.LastException != null)
                {
                    AWSSDKUtils.PreserveStackTrace(asyncResult.LastException);
                    throw asyncResult.LastException;
                }

                return((T)asyncResult.Return);
            }
        }
Esempio n. 2
0
        public static IAsyncResult BeginOperation(AsyncCall call, AsyncCallback callback, object state)
        {
            DynamoDBAsyncResult result = new DynamoDBAsyncResult(callback, state);

            ThreadPool.QueueUserWorkItem(s => Execute(call, result));
            return(result);
        }
Esempio n. 3
0
        public static IAsyncResult BeginOperation(AsyncCall call, AsyncCallback callback, object state)
        {
            DynamoDBAsyncResult result = new DynamoDBAsyncResult(callback, state);

#if (WIN_RT || WINDOWS_PHONE)
            System.Threading.Tasks.Task.Run((Action)(() => Execute(call, result)));
#else
            ThreadPool.QueueUserWorkItem(s => Execute(call, result));
#endif
            return(result);
        }
Esempio n. 4
0
 public static void Execute(AsyncCall call, DynamoDBAsyncResult result)
 {
     try
     {
         result.Return = call();
     }
     catch (Exception e)
     {
         result.LastException = e;
         result.Return        = null;
     }
     finally
     {
         result.SignalWaitHandle();
         if (result.Callback != null)
         {
             result.Callback(result);
         }
     }
 }
Esempio n. 5
0
 public static void Execute(AsyncCall call, DynamoDBAsyncResult result)
 {
     try
     {
         result.Return = call();
     }
     catch (Exception e)
     {
         result.LastException = e;
         result.Return = null;
     }
     finally
     {
         result.SignalWaitHandle();
         if (result.Callback != null)
         {
             result.Callback(result);
         }
     }
 }
Esempio n. 6
0
 public static IAsyncResult BeginOperation(AsyncCall call, AsyncCallback callback, object state)
 {
     DynamoDBAsyncResult result = new DynamoDBAsyncResult(callback, state);
     ThreadPool.QueueUserWorkItem(s => Execute(call, result));
     return result;
 }