我有要移植到 C# 4.0 的 C# 2.0 代码。我想System.Task
用System.ThreadPool.QueueueUserWorkItem
. 我也想System.Task
用System.Threading.Timer
.
如何创建定期System.Task
?System.Task
我在或上看不到任何东西System.TaskFactory
。
亲切的问候考虑,
库马拉
我有要移植到 C# 4.0 的 C# 2.0 代码。我想System.Task
用System.ThreadPool.QueueueUserWorkItem
. 我也想System.Task
用System.Threading.Timer
.
如何创建定期System.Task
?System.Task
我在或上看不到任何东西System.TaskFactory
。
亲切的问候考虑,
库马拉
使用 Observable.Interval 或 Observable.Timer。Timer 允许你传入一个dueTime
情商
// Repeat every 2 seconds.
IObservable<long> observable = Observable.Interval(TimeSpan.FromSeconds(2));
// Token for cancelation
CancellationTokenSource source = new CancellationTokenSource();
// Create task to execute.
Action action = (() => Console.WriteLine("Action started at: {0}", DateTime.Now));
Action resumeAction = (() => Console.WriteLine("Second action started at {0}", DateTime.Now));
// Subscribe the obserable to the task on execution.
observable.Subscribe(x => { Task task = new Task(action); task.Start();
task.ContinueWith(c => resumeAction());
}, source.Token);
您可以尝试使用Observable.Timer返回可观察的计时器序列。