timer.cs
来自「WF本质论一书的源码,要书籍的朋友同我联系.」· CS 代码 · 共 28 行
CS
28 行
using System;
using System.Threading;
using System.Workflow.Runtime;
using System.Collections.Generic;
using System.Workflow.ComponentModel;
namespace EssentialWF.Services {
public sealed class TimerService {
WorkflowRuntime runtime;
Dictionary<Guid, Timer> timers = new Dictionary<Guid, Timer>();
public TimerService(WorkflowRuntime runtime) {
this.runtime = runtime;
}
public void SetTimer(TimeSpan duration, Guid timerId, Guid workflowInstanceId) {
Timer timer = new Timer(delegate(object o) {
WorkflowInstance instance = this.runtime.GetWorkflow(workflowInstanceId);
instance.EnqueueItem(timerId, null, null, null);
}, timerId, duration, new TimeSpan(Timeout.Infinite));
this.timers.Add(timerId, timer);
}
public void CancelTimer(Guid timerId) {
((IDisposable)this.timers[timerId]).Dispose();
this.timers.Remove(timerId);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?