Это не сработает. Потоки Tcl спроектированы так, чтобы быть сильно изолированными друг от друга, поскольку это значительно уменьшает количество блокировок, необходимых для нормальной обработки. Недостатком этого является то, что передача вещей между потоками нетривиальна (кроме коротких сообщений, содержащих команды, а аудиоданные нет!) Но есть путь вперед…
Если вы можете отправить данные в виде байтов (на уровне сценария), то я рекомендую передавать их между потоками, используя tsv
пакет , который объединен с пакетом потока, чтобы вы могли уже будет. Это позволит вам относительно просто переносить данные между потоками. Имейте в виду, что пакет закусок не поддерживает потоки в своем интерфейсе на уровне сценариев, поэтому при передаче данных все еще будет происходить копирование, а Tk (как и многие другие инструментарии GUI, FWIW) не поддерживает многопоточное использование (не без техник в другой раз), так что если вы делаете визуализацию формы волны, у вас есть работа впереди. (OTOH, современные процессоры тоже могут сэкономить много времени.)