поэтому возникла новая проблема ...C# Многопоточный проверщик прокси
Я пишу многопоточный прокси-чекер в C#.
Я использую BackgroundWorkers для решения проблемы многопоточности.
Но у меня проблемы с координацией и назначением прокси в левой части очереди рабочим. Он работает большую часть времени, но иногда никакого результата не возвращается, поэтому некоторые прокси получают «потерянные» во время процесса.
Этот список представляет собой очередь и заполняется идентификаторами прокси в ListView.
private List<int> queue = new List<int>();
private int GetNextinQueue()
{
if(queue.Count > 0)
{
lock (lockqueue)
{
int temp = queue[0];
queue.Remove(temp);
return temp;
}
}
else
return -1;
}
Выше мой метод, чтобы получить следующий прокси-сервер в очереди, я использую оператор блокировки для предотвращения гонки условий, но я не уверен, если его достаточно или замедляет ли это процесс, потому что делает другие темы подождите ... (lockqueue - это объект, который используется только для блокировки)
Так что мой вопрос: как возможно, что некоторые прокси не проверяются (даже если пинг не прошел проверку, должен что-то вернуть, но иногда theres просто ничего) и как я могу оптимизировать этот код для производительности?
Вот остальная часть кода, который я считаю важным для этого вопроса http://pastebin.com/iJduX82b
Если что-то не хватает просто написать комментарий
Спасибо :)
Спасибо, действительно красивое решение. И спасибо всем остальным за вашу помощь, я очень ценю это, но, к сожалению, я могу принять только один ответ. Проблема с «потерянными» прокси решена сейчас, я думаю. – Chilln