У меня есть два процесса: один GUI, другой CUI. В каждом из них размещается простая служба WCF, и они общаются друг с другом через каналы имен.Межпроцессная связь с именованным каналом и службой WCF: проблема с потоками
В GUI-приложении есть две кнопки и индикатор выполнения.
Кнопка «Начать запуск» сообщает CUI, чтобы выполнить задачу в течение 30 секунд. CUI сообщает о своем прогрессе в GUI, поэтому индикатор выполнения может быть обновлен. Кнопка «Печать» сообщает CUI о печати строки.
Теперь, если мы нажимаем на кнопку «Печать» на несколько раз, это нормально, НПИ будет печатать строки:
Затем, если нажать на кнопку «начать работать», то НПИ напечатает прогресс на консоль и сообщить прогресс обратно в графический интерфейс и индикатор обновляется:
Затем я могу нажать на кнопку «Печать» еще пару раз, и она работает:
Все это кажется хорошим.
Но если перезапустить эти два процесса, и нажмите кнопку «Start Running», а затем нажмите кнопку «Печать», то оба процесса будут заморожены:
Это выглядит как вопрос распараллеливания.
Так кажется, что если я начну с нажатия кнопки печати, тогда все будет работать. Но если я начну с нажатия кнопки запуска, то будет мертвый замок. Почему?
Вы можете скачать этот образец здесь: http://files.cnblogs.com/cuipengfei/SampleForStackOverflow.zip
спасибо, открывающее множественные соединения работы. – CuiPengFei
, мы также можем решить эту проблему, выполнив задачу в другом потоке. – CuiPengFei