您好,登錄后才能下訂單哦!
在C#工作流中實現任務調度可以使用System.Threading.Tasks命名空間中的Task類或者使用第三方的調度框架,比如Quartz.NET。
使用Task類實現任務調度示例:
using System;
using System.Threading;
using System.Threading.Tasks;
class Program
{
static void Main()
{
Task.Factory.StartNew(() =>
{
while (true)
{
Console.WriteLine("Task is running...");
Thread.Sleep(1000); // 任務執行間隔為1秒
}
});
Console.WriteLine("Press any key to stop the task");
Console.ReadKey();
}
}
使用Quartz.NET實現任務調度示例:
using Quartz;
using Quartz.Impl;
class Program
{
static async Task Main()
{
// 創建調度器工廠
var schedulerFactory = new StdSchedulerFactory();
var scheduler = await schedulerFactory.GetScheduler();
// 開啟調度器
await scheduler.Start();
// 創建Job實例
var job = JobBuilder.Create<HelloJob>()
.WithIdentity("job1", "group1")
.Build();
// 創建觸發器
var trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(1) // 任務執行間隔為1秒
.RepeatForever())
.Build();
// 將Job和Trigger加入調度器
await scheduler.ScheduleJob(job, trigger);
// 等待執行
await Task.Delay(TimeSpan.FromSeconds(10));
// 關閉調度器
await scheduler.Shutdown();
}
public class HelloJob : IJob
{
public Task Execute(IJobExecutionContext context)
{
Console.WriteLine("Hello, Quartz.NET!");
return Task.CompletedTask;
}
}
}
以上代碼示例分別演示了使用Task類和Quartz.NET框架實現任務調度的方法。通過這兩種方法,可以在C#工作流中實現靈活、可定制的任務調度功能。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。