C# 计时程序不卡主程序
时间: 2024-08-14 11:01:10 浏览: 34
在C#中创建一个计时程序而不影响主程序的正常运行,通常会使用`System.Timers.Timer`或者`System.Threading.Tasks.Task.Delay`结合`.ConfigureAwait(false)`来实现异步计时。以下是简单的示例:
```csharp
using System;
using System.Timers;
class Program
{
private static Timer timer;
static void Main(string[] args)
{
// 主程序入口
Console.WriteLine("Main program running...");
// 创建定时器,设置间隔并开始
timer = new Timer(5000); // 5秒后触发
timer.Elapsed += OnTimerElapsed;
timer.Start();
}
private static async void OnTimerElapsed(object sender, ElapsedEventArgs e)
{
// 异步操作,避免阻塞主线程
await Task.Run(() => DoSomething());
// 如果需要,可以在这里更新UI,不会导致卡顿
Console.WriteLine("Timer elapsed, updating UI...");
}
private static void DoSomething()
{
// 这里放置你需要执行的耗时任务
// 例如:网络请求、数据库查询等
Console.WriteLine("Doing something...");
// 注意关闭定时器以防止内存泄漏
timer.Stop();
}
}
阅读全文