protected override void RunWriter( IEnumerable <ProcessorWorker> processorWorkers, IWriter writer, UserTask writerTask, string outputFilePath, OutputQueue outputQueue, Action <TaskStatus> callback) { UserTask newWriterTask = writerTask; if (_settings.CreateMultiStream && outputQueue.Capacity > 1) { newWriterTask = (parameter) => { List <EventWaitHandle> waitHandles = new List <EventWaitHandle>(); foreach (ProcessorWorker processorWorker in processorWorkers) { waitHandles.Add(processorWorker.Event); } EventWaitHandle.WaitAll(waitHandles.ToArray()); writerTask.Invoke(parameter); }; } base.RunWriter(processorWorkers, writer, newWriterTask, outputFilePath, outputQueue, callback); }
private int Execute01(UserTask task) { int ret = -1; if (EnableAsync) { SingleThread.Execute(task, null, (taskStatus) => { ret = (int)taskStatus.ReturnData; }); } else { ret = (int)task.Invoke(null); } return(ret); }