Использование PostThreadMessage между потоками, созданными в двух файлах c ++ - PullRequest
0 голосов
/ 03 декабря 2010

У меня есть поток, созданный в основной функции, и PostThreadMessage из них вызывается с соответствующим идентификатором потока.Если в отдельном файле создается еще один поток, как мы можем вызвать PostThreadMessage, поскольку мы не знаем идентификатор потока, который является параметром для вызова

1 Ответ

1 голос
/ 03 декабря 2010

Вы должны либо:

  1. Сохранить / передать идентификатор потока (или дескриптор потока) из любого созданного потока в то, что нужно знать о потоке;или

  2. Есть способ найти нить через объект, который он создает.(Например, если оно создает окно с уникальным классом, вы можете найти это окно и затем спросить у ОС, какой поток владеет окном.)

Кроме этого, никакого магического пути нет«найти конкретный поток без известных атрибутов, созданный другим потоком, о котором никто не говорил», если только вы не хотите перечислить все потоки в вашем процессе (но вы не могли бы знать, что поток является правильным,если вы не сделали что-то вроде # 1 или # 2 выше, и если вы делаете один из них, вам не нужно перечислять в первую очередь).

Обратите внимание, что почти всегда будет больше потоков в вашемчем те, которые вы явно создаете, поэтому вы не можете просто искать «любой поток, кроме двух, о которых я уже знаю», потому что вы можете выбрать системный рабочий поток или аналогичный, с которым вам не следует связываться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...