Как бы вы ограничили количество операций в секунду?

Как бы вы ограничили количество операций в секунду?

Допустим, нам нужно копировать файлы из одного места в другое, и мы не хотим, чтобы за один обрабатывалось более 5 файлов. во-вторых.

Пожалуйста, посмотрите, что я делаю

private static string currentStamp;
private static int processedInCurrentStamp = 0;

private static void Main(string[] args)
{
    currentStamp = DateTime.Now.ToString("{0:d/M/yyyy HH:mm:ss}");
    Run();
}

private static void Run()
{
    for (int i = 0; i < Int32.MaxValue; i++)
    {
        string s = DateTime.Now.ToString("{0:d/M/yyyy HH:mm:ss}");
        if (currentStamp.Equals(s))
        {
            if (processedInCurrentStamp < 5)
            {
                ProcessItem();
                processedInCurrentStamp++;
            }
        }
        else
        {
            Console.WriteLine("{0} ::: {1}", currentStamp, processedInCurrentStamp);
            currentStamp = s;
            processedInCurrentStamp = 0;
        }
    }
}

Но мне нужен более элегантный и пуленепробиваемый способ.

7
задан abatishchev 3 November 2010 в 08:20
поделиться