コード例 #1
0
ファイル: Program.cs プロジェクト: Trapov/merge-sort-files
        public static async Task Main(string[] args)
        {
            Singletones.Metrics.Stopwatch.Start();
            Console.OutputEncoding = System.Text.Encoding.UTF8;

            await Task.WhenAll(
                Singletones
                .Generator
                .GenerateFiles(Constants.DefaultFileCount, Constants.DefaultFilePostfix, Singletones.CancellationTokenSource.Token)
                .Select(process =>
            {
                var model = new FileGeneratorModel.GeneratedFile
                {
                    FileName      = process.FileName,
                    IsDone        = false,
                    NumberOfLines = process.NumberOfLines
                };
                process.Task.ContinueWith(_ =>
                {
                    model.IsDone = true;
                    Singletones.UI.UpdateElapsed();
                }, TaskScheduler.Current);

                Singletones.UI.Model.GeneratedFiles.Add(model);
                return(process.Task);
            })
                );

            Singletones.Metrics.Stopwatch.Stop();
            Singletones.UI.UpdateElapsed();

            await Singletones.UI.RenderingLoop.RunningTask;
        }
コード例 #2
0
        public static string RenderRow(FileGeneratorModel.GeneratedFile generatedFile)
        {
            var fileNameEntry      = string.Join("", generatedFile.FileName.PadRight(FileNameLength).Take(FileNameLength));
            var numberOfLinesEntry = string.Join("", generatedFile.NumberOfLines.ToString().PadRight(NumberOfLinesLength).Take(NumberOfLinesLength - 3));

            var stateEntry = generatedFile.IsDone ? "Done".InGreen() : "Writing".InYellow();

            return($" {fileNameEntry} {numberOfLinesEntry} {stateEntry}");
        }