public static void AsyncOperation <T>(AsyncCall call, string operation, AmazonDynamoCallback <T> callback, object state) { DynamoDBAsyncState <T> result = new DynamoDBAsyncState <T>(operation, callback, state); ThreadPool.QueueUserWorkItem(s => Execute(call, result)); return; }
private static void Execute <T>(AsyncCall call, DynamoDBAsyncState <T> result) { try { result.Return = call(); AmazonMainThreadDispatcher.ExecCallback <T>(result.Callback, new AmazonDynamoResult <T>((T)result.Return, null, result.State)); return; } catch (Exception ex) { AmazonLogging.LogException(AmazonLogging.AmazonLoggingLevel.Errors, result.Operation, ex); AmazonMainThreadDispatcher.ExecCallback <T>(result.Callback, new AmazonDynamoResult <T>(default(T), ex, result.State)); return; } }