Для этого нет универсального решения, вы не можете просто прервать поток и доставить уведомление для обработки. Это вызывает ужасные проблемы повторного входа и большие порции тупиковой ситуации. Уведомление может быть обработано только тогда, когда поток находится в состоянии покоя.
Операционная система обычно имеет службы, которые делают это возможным. В Windows это обычно делается путем отправки сообщения в очередь сообщений. Прочитано в цикле сообщений, который является состоянием «ожидания» для потока пользовательского интерфейса. Или используя асинхронные вызовы процедур, запускаемые при блокировке потока и явно разрешающие запуск APC.
Но вы отсекаете это, требуя решения, не зависящего от платформы. В этом случае вы в значительной степени обречены заново изобретать функцию ОС. Вам понадобится потокобезопасная очередь, которую вы опрашиваете в потоке, который должен получить уведомление. Очередь сообщений, прочитанная в цикле сообщений.