- Регистрация
- 30.11.2020
- Сообщения
- 496
- Благодарностей
- 314
- Баллы
- 63
Добрый день знатоки. Помогите с направлением - где посмотреть реализацию такого момента
Есть участок кода, примерно с такой структурой, которая выполняется во многопотоке
При работе во много потоке - первая секция отбрасывает (отбраковывает) разное количество строк из входящего списка и , к примеру, в List1 попадает всегда меньше значений чем поступает на обработку. В результате через какое то время Section 2 завершается аварийно, так как в List1 поступает значений меньше чем работающих потоков и в итоге в какой то момент времени List1 становится пустым для всех потоков
//////
Подскажите, куда посмотреть чтобы в случае если список List1 пуст - усыпить поток с проверкой через время, но в идеале вернуть в начало Section 1 чтобы он не ждал наполнения списка другими работающими потоками, а сам приступил к наполнению списка.
Друзья, возможно есть более "нормальное" решение - буду признателен если "тыкните" где прочитать (кроме метанита пожалуйста)
PS Усыпить поток не вариант - список все равно останется пустым так как все потоки будут ждать вместо того чтобы работать. Нужен пропуск кода
Есть участок кода, примерно с такой структурой, которая выполняется во многопотоке
C#:
//Тут индуский код
Section 1
{
/*
Тут находится код, по результатам которого входящие значения расскладываются в два списка
List0.Add(badresult);
List1.Add(transitresult);
*/
}
Section 2
{
/*
В данной области обрабатываются результаты которые попадают в List1 из предыдущего кода
*/
}
//Далее следует продолжение индуского кода
//////
Подскажите, куда посмотреть чтобы в случае если список List1 пуст - усыпить поток с проверкой через время, но в идеале вернуть в начало Section 1 чтобы он не ждал наполнения списка другими работающими потоками, а сам приступил к наполнению списка.
Друзья, возможно есть более "нормальное" решение - буду признателен если "тыкните" где прочитать (кроме метанита пожалуйста)
PS Усыпить поток не вариант - список все равно останется пустым так как все потоки будут ждать вместо того чтобы работать. Нужен пропуск кода