Вы, вероятно, можете избежать сочетания 1 и 2, так как функция слайд-шоу в любом случае по существу ориентирована на графический интерфейс.
Для # 3 вы можете обойтись без какой-либо методологии асинхронного ввода-вывода, так что вам не нужно выделять поток опроса. Не уверен, что вы можете сделать это с USB, но вы, безусловно, можете получить асинхронный ввод-вывод с последовательным и сетевым интерфейсами, так что стоит посмотреть.
Вероятно, это хорошая идея, чтобы перенести такие тяжелые задачи, как 4 и 5, в свою ветку. Если вы не выполняете анализ и графики одновременно, возможно, один поток для них обоих. Тем не менее, вы должны подумать, сколько процессорного времени потребуется для этих действий. Если анализ и построение наихудшего случая занимает намного меньше половины секунды, вы можете просто выполнить эти действия с помощью вызова из графического интерфейса. И наоборот, если есть случаи, когда это займет больше времени, отдельный поток предпочтителен, потому что вашим пользователям не понравится медленный графический интерфейс.
Только помните, что темная сторона нитей заключается в неизбежной задаче их координации.