コード例 #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            for (int i = 0; i < 100; i++)
            {
                var index = i;
                Task.Run(async() =>
                {
                    var delayTask = DelayTask.AddTask(index,
                                                      new Func <object, int, Func <Task> >((state, count) => new Func <Task>(() =>
                    {
                        Console.WriteLine($"第{count}次执行:{state},threadId:{System.Threading.Thread.CurrentThread.ManagedThreadId}");
                        return(Task.CompletedTask);
                    })),
                                                      index,
                                                      TimeSpan.FromSeconds(1),
                                                      count =>
                    {
                        if (count > i)
                        {
                            return(null);
                        }
                        return(TimeSpan.FromMilliseconds((i % 3) * 100));
                    });
                    await Task.Delay(5000);
                    delayTask.Stop();
                });
            }

            Console.ReadLine();
        }