9

我有要移植到 C# 4.0 的 C# 2.0 代码。我想System.TaskSystem.ThreadPool.QueueueUserWorkItem. 我也想System.TaskSystem.Threading.Timer.

如何创建定期System.TaskSystem.Task我在或上看不到任何东西System.TaskFactory

亲切的问候考虑,

库马拉

4

2 回答 2

22

使用 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);

在此处输入图像描述

于 2013-08-02T18:05:10.407 回答
3

您可以尝试使用Observable.Timer返回可观察的计时器序列。

于 2013-08-02T18:00:12.340 回答