C#使用Delay處理用戶輸入

c#
小樊
90
2024-06-25 00:56:38
欄目: 編程語言

在C#中可以使用Task.Delay方法來處理用戶輸入的延遲。例如,可以設(shè)置一個(gè)延遲時(shí)間,然后在該時(shí)間內(nèi)等待用戶輸入,如果用戶在延遲時(shí)間內(nèi)輸入了內(nèi)容,則可以立即對(duì)輸入內(nèi)容進(jìn)行處理。以下是一個(gè)示例代碼:

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); // 設(shè)置延遲時(shí)間為5秒
        
        var userInputTask = GetUserInput(); // 獲取用戶輸入的任務(wù)
        
        var completedTask = await Task.WhenAny(delayTask, userInputTask); // 等待延遲任務(wù)或用戶輸入任務(wù)完成
        
        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來設(shè)置一個(gè)5秒的延遲時(shí)間,然后通過Task.WhenAny方法等待延遲任務(wù)或用戶輸入任務(wù)的完成。如果延遲任務(wù)先完成,則提示用戶未及時(shí)輸入內(nèi)容;如果用戶輸入任務(wù)先完成,則獲取用戶輸入并進(jìn)行處理。

0