在C#中,你可以使用TaskScheduler
類來安排任務在特定時間或按照特定間隔觸發。以下是一個簡單的示例,展示了如何使用TaskScheduler
在指定時間觸發事件響應:
System.Threading.Tasks
命名空間。using System.Threading.Tasks;
public void EventHandler()
{
Console.WriteLine("事件已觸發!");
}
TaskScheduler
安排任務在指定時間觸發事件響應。public void ScheduleEvent(DateTime targetTime, Action eventHandler)
{
// 獲取默認的任務調度器
TaskScheduler taskScheduler = TaskScheduler.Default;
// 創建一個表示延遲任務的TaskCompletionSource對象
TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>();
// 創建一個任務,該任務在指定的延遲后完成
Task task = taskScheduler.Schedule(() =>
{
eventHandler();
tcs.TrySetResult(true);
}, targetTime);
// 如果需要在任務完成之前取消任務,可以調用tcs.TrySetCanceled()方法
// 如果任務已經完成,可以調用tcs.TrySetResult()方法
// 等待任務完成
Task.Wait(task);
}
Main
方法中調用ScheduleEvent
方法,安排事件在指定時間觸發。public static void Main(string[] args)
{
DateTime targetTime = DateTime.Now.AddSeconds(10); // 10秒后觸發事件
ScheduleEvent(targetTime, EventHandler);
}
這個示例將在10秒后觸發EventHandler
方法,輸出"事件已觸發!"。你可以根據需要調整targetTime
變量來安排任務在特定時間觸發。