Раз со стеком работаю разные потоки (на запись и на чтение разные), то на запись SafeMode =Wait, а на чтение SafeMode =NoWait - верно?
И о том, что Thread не даст начаться новой, пока не завершился старая - он же будет копить все эти итерации пока не обработает, и создавать этим огромную очередь? Я разве не решаю эту проблему использованием того If_else? Мне просто хотелось чтоб стек читался как можно чаще, и в новом потоке, не задерживая основную задачу - вот и поставил 15 миллисекунд, но с выключателем через If_else: вышли данные из стека - включилась отсечка на новые итерации потока. Завершился поток - снова разрешается читать стек.
Вообще чего связался с этими потоками: основная задача - читать и писать в com-порт. Но большинство принимаемых данных не представляют ценности, а бывает, что приходят нужные данные. Но их обработка не является сверхсрочной и можно продолжать читать порт дальше.
Так вот данные заходят в стек и порт читается дальше себе. А новый поток опрашивает стек и обрабатывает очередь, записывая результат в память. Таким образом поддерживается нужная скорость опроса порта, и обработка данных идет в фоновом режиме (по крайней мере так планирую
