代码之家  ›  专栏  ›  技术社区  ›  Alex from Jitbit

对集合中的每个项目逐一运行操作,并暂停

  •  0
  • Alex from Jitbit  · 技术社区  · 6 年前

    我需要为集合中的每个项目逐个执行任务(不是并行执行) 停顿了一下 防止数据库服务器发热。我写了一个方法:

    public static Task ForEachWithPause<T>(this IEnumerable<T> enumeration, Action<T> action, int milliseconds)
    {
        return Task.Run(async () =>
        {
            foreach (T item in enumeration)
            {
                action(item);
                await Task.Delay(milliseconds);
            }
        });
    }
    
    //usage
    intCollection..ForEachWithPause(integer =>
        {
            //do something with integer
        }, 500);
    

    有人觉得有什么问题吗?我对任务和 async

    0 回复  |  直到 6 年前