У меня есть подозрение, что вы просто скопировали этот код откуда-то, не понимая последствий. Это одна из пяти вещей, которые должен знать каждый программист Win32 , о которых я говорил в 2005 году.
AttachThreadInput
означает «Пожалуйста, возьмите все деньги из этих двух потоков и поместите их на совместный банковский счет, чтобы ни один из потоков не мог снять деньги, если только оба потока не отправятся в банк вместе, чтобы вывести деньги».
Это замечательно, если два потока состоят в браке или являются членами одной семьи или иным образом доверяют друг другу общий банковский счет, а также могут координировать свои действия так, чтобы, когда одному из них нужны деньги, он мог позвонить другому. и скажи: «Эй, не могли бы вы пойти со мной в банк? Мне нужны деньги».
В вашем случае вы сказали: «Пожалуйста, заберите все мои деньги и все деньги у случайного человека, идущего по улице , и положите их на совместный банковский счет, чтобы ни я, ни этот другой человек может снять любые деньги, если мы оба не пойдем в банк вместе, чтобы забрать деньги. "
Это плохая идея, как для вас, так и для другого человека, поскольку теперь вы не можете снять деньги, если вам не удастся связаться с другим человеком. Но так как вы только что схватили случайного человека, идущего по улице, вы не знаете номер его мобильного телефона, поэтому у вас нет возможности связаться с ним, чтобы сказать: «Эй, ты можешь пойти со мной в банк?» И этот случайный человек теперь имеет доступ ко всей информации вашего банковского счета. (И ваши деньги, и деньги этого другого человека слились воедино - это уже не «ваши деньги» и «деньги этого другого человека». Это всего лишь одна куча денег.)
Измените «банковский счет» на «очередь ввода», «деньги» на «ввод» и «перейти в банк» на «проверку очереди сообщений».
В вашем случае вы взяли Visual Studio и сказали: «Хорошо, теперь у нас есть совместный банковский счет!» Посмотрите, что происходит: Visual Studio не может снять деньги, потому что вам нужно, чтобы вы пошли в банк. Но вы не можете пойти в банк, потому что вы сломаны в отладчике. Результат: никто не получает денег.
Ваш дизайн в корне неверен. Вам нужно пересмотреть вашу ситуацию.
См. Также: Я предупреждал вас: Опасность присоединения входных очередей .