Пример #1
0
 private static async Task RunTeleprompter()
 {
     var config      = new TelePrompterConfig();
     var displayTask = ShowTeleprompter(config);
     var speedTask   = GetInput(config);
     await Task.WhenAny(displayTask, speedTask);
 }
Пример #2
0
 private static async Task RunTeleprompter()
 {
     var config      = new TelePrompterConfig();
     var displayTask = ShowTeleprompter(config);
     var speedTask   = GetInput(config);
     //二つのTaskが完了するまで処理を実行
     await Task.WhenAll(displayTask, speedTask);
 }
Пример #3
0
    private static async Task ShowTeleprompter(TelePrompterConfig config)
    {
        var words = ReadFrom("sampleQuotes.txt");

        foreach (var word in words)
        {
            Console.Write(word);
            if (!string.IsNullOrWhiteSpace(word))
            {
                await Task.Delay(config.DelayInMilliseconds);
            }
        }
        config.SetDone();
    }
Пример #4
0
 /**
 * 创建一个读取键盘输入的进程。根据录入调节输出速度和监控退出。 < :增加屏幕字符输出间隔50ms;  > : 减少屏幕字符输出间隔50ms;  x或者X : 退出字符传输出
 * config 配置文件
 **/
 private static async Task GetInput(TelePrompterConfig config){
   Action work = () =>{
     do{
       var key = Console.ReadKey(true);  //读取键盘输入
       if( key.KeyChar == '>' ){
         config.UpdateDelay(-50);  //输出屏幕字符间隔减少50ms
       }else if( key.KeyChar == '<' ){
         config.UpdateDelay(50); //输出屏幕字符间隔增加50ms
        }else if( key.KeyChar == 'x' || key.KeyChar == 'X' ){
         config.setDone(); //退出屏幕字符输出
        }
     }while(!config.Done);
     Console.WriteLine(config.DelayInMilliSeconds);
   };
   await Task.Run(work); //起进程等待键盘输入
 }
Пример #5
0
        private static async Task ShowTeleprompter(TelePrompterConfig config)
        {
            var words = GetFileContent(FilePath);

            foreach (var word in words)
            {
                //単語の出力に、configで設定されている時間の間隔を設ける
                Console.Write(word);
                if (!string.IsNullOrWhiteSpace(word))
                {
                    await Task.Delay(config.DelayInMilliseconds);
                }
            }
            //ファイルの読み込みが終了すると、config.Doneをtrueにする
            config.SetDone();
        }
Пример #6
0
 private static async Task GetInput(TelePrompterConfig config)
 {
     Action work = () =>
     {
         do
         {
             var key = Console.ReadKey(true);
             if (key.KeyChar == '>')
             {
                 config.UpdateDelay(-10);
             }
             else if (key.KeyChar == '<')
             {
                 config.UpdateDelay(10);
             }
             else if (key.KeyChar == 'X' || key.KeyChar == 'x')
             {
                 config.SetDone();
             }
         } while (!config.Done);
     };
     await Task.Run(work);
 }