public static List<WaitHandle> ExecAsync(this IEnumerable<Action> actions) { var waitHandles = new List<WaitHandle>(); foreach (var action in actions) { var waitHandle = new AutoResetEvent(false); waitHandles.Add(waitHandle); var commandExecsHandler = new ActionExecHandler(action, waitHandle); ThreadPool.QueueUserWorkItem(x => ((ActionExecHandler)x).Execute(), commandExecsHandler); } return waitHandles; }
public static List<WaitHandle> ExecAsync(this IEnumerable<Action> actions) { var waitHandles = new List<WaitHandle>(); foreach (var action in actions) { var waitHandle = new AutoResetEvent(false); waitHandles.Add(waitHandle); var commandExecsHandler = new ActionExecHandler(action, waitHandle); #if NETFX_CORE ThreadPool.RunAsync(new WorkItemHandler((IAsyncAction) => commandExecsHandler.Execute())); #else ThreadPool.QueueUserWorkItem(x => ((ActionExecHandler)x).Execute(), commandExecsHandler); #endif } return waitHandles; }