Приветствую.
У меня существует процесс допустим ClientThread1 который в случае необходимости запускает WorkThread.
WorkThread выполняет некоторый объем работы которая в большенстве случаев превышает объем работы необходимый для продолжения работы ClientThread1.
Как ClientThread1 узнать что можно продолжать работать?
Единственное что мне пришло в голову это написать код вроде
while(true){
lock(data){
if(data.success){
continue;
}
}
Sleep(10);
}
В данном решении приложение может простаивать до 10мс да еще и lock не быстрая штука.
Хотя вроде это не относится к делу, но хочу заметить что один или несколько WorkThread разбирающих очередь мне не подходят из за особенностей поставленных задач.
Подскажите есть ли более верные способы решения этой задачи.