温馨提示×

C#使用Delay处理用户输入

c#
小樊
82
2024-06-25 00:56:38
栏目: 编程语言

在C#中可以使用Task.Delay方法来处理用户输入的延迟。例如,可以设置一个延迟时间,然后在该时间内等待用户输入,如果用户在延迟时间内输入了内容,则可以立即对输入内容进行处理。以下是一个示例代码:

using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        Console.WriteLine("Please enter something within 5 seconds:");
        
        var delayTask = Task.Delay(5000); // 设置延迟时间为5秒
        
        var userInputTask = GetUserInput(); // 获取用户输入的任务
        
        var completedTask = await Task.WhenAny(delayTask, userInputTask); // 等待延迟任务或用户输入任务完成
        
        if (completedTask == delayTask)
        {
            Console.WriteLine("Time's up. No input received.");
        }
        else
        {
            string userInput = await userInputTask;
            Console.WriteLine($"User input received: {userInput}");
        }
    }

    static async Task<string> GetUserInput()
    {
        return await Task.Run(() => Console.ReadLine());
    }
}

在上面的示例中,我们使用Task.Delay来设置一个5秒的延迟时间,然后通过Task.WhenAny方法等待延迟任务或用户输入任务的完成。如果延迟任务先完成,则提示用户未及时输入内容;如果用户输入任务先完成,则获取用户输入并进行处理。

0