Потоки и задержка их выполнения c#

У меня есть код, который обрабатывает некие данные. Распишу чуть ниже. Я создаю потоки таким кодом

for (int i = 0; i < data.thread; i++)
    {
        Thread th = new Thread(Checker)
        {
            Priority = ThreadPriority.Highest
        };
        th.Start();
    }

В каждом потоке запускается Parallel.For. Обработка заключается в том, что есть некий List<string> с аккаунтами (log:pass), каждый цикл вытягивается аккаунт и через api делаются запросы к серверу и идет обработка полученного запроса (в основном получаю картинку - работаю/сохраняю ее)
Вот код который отвечает за запись/выдачу аккаунта

private List<string> account = new List<string>();
public string Account
    {
        get
        {
            lock (account)
            {
                if (account.Count != 0)
                {
                    string _account = account[0];
                    account.Remove(_account);

                    return _account;
                }
                return "Account 0";
            }
        }
        set
        {
            lock (account)
            {
                if (!string.IsNullOrWhiteSpace(value))
                {
                    account.Add(value);
                }
            }
        }
    }

И стоит такая задача, есть сторонняя программа которая подхватывает картинки из моей и тоже их обрабатывает и шлет ответ в мою, ну и дальше по сценарию. Программа которая подхватывает слишком сильно грузит процессор, не всегда, но бывает. Хотелось бы сделать ползунок на подобии "таймаут между действиями" в миллисекундах чтобы разгрузить проц. Задача странная как и весь код. Помогите исправить недостатки кода и как можно сделать таймаут? уф


Ответы (0 шт):