Неблокирующее окно сообщений и недостатки DllImport - PullRequest
0 голосов
/ 22 ноября 2010

Я в настоящее время разработчик, работающий над приложением, ориентированным на конкретные задачи;пользователи часто выполняют многозадачность, поэтому они часто допускают ошибки при вводе данных.Характер задачи делает важным уведомление их об этих ошибках вменения.В настоящее время мы используем комбинацию панелей и ярлыков и / или небольшой ярлык внизу приложения, чтобы уведомить их о том, что происходит.В ближайшее время нам будет поручено обновить интерфейс для приложения.

Недавно при поиске несвязанного вопроса я наткнулся на следующий вопрос: нажмите здесь для ссылки мне попался ответ, и установка ручки владельца на ноль (ноль) действительно сделала то, чтоспросил автор.

Поскольку я только недавно начал работать с импортом и работой с неуправляемым кодом в C #, мне было интересно, были ли какие-либо «побочные эффекты» использования этого метода.Я, конечно, понимаю, что пользователь может заставить приложение открыть тонну сообщений.В прошлом я пытался использовать потокобезопасное окно сообщения и обнаружил, что требование нашего приложения всегда быть сверху было проблемой (местоположение окна сообщения было скрыто приложением).

Мне удалось протестировать код в соответствии с требованием, и, похоже, у него есть проблемы, схожие с обнаруженным мною методом, но, похоже, мы можем обойти эти проблемы.Я подумал о том, что можно сделать, мне действительно нужно выяснить, как определить, где на экране будет отображаться окно сообщения.

Чтобы ответить на вопросы Джима, нужно понять, чтоприложение, которое работает, постоянно обрабатывает данные.Поэтому в настоящее время все, что блокирует основной поток, может вызвать проблемы при обработке этих данных, что является критически важным для задачи.Мы решаем эту проблему с помощью меток, но с нашей будущей задачей я ищу более рациональный подход для представления этих сообщений об ошибках.Основная проблема заключается в решении также не должно дополнительных накладных расходов на приложение.Некоторые дополнительные полезные сведения о том, что система используется в закрытой сети.

Я полагаю, что короткий вопрос должен быть, есть ли какие-либо недостатки использования этого конкретного метода, чтобы показатьнеблокирующее окно сообщения в C #?

1 Ответ

3 голосов
/ 22 ноября 2010

Нет особой технической проблемы с отображением модальных окон сообщений путем установки дескриптора окна на ноль. Я подвергаю сомнению его использование в качестве сообщения об ошибке пользовательского интерфейса, поскольку оно не мешает пользователю продолжать работу перед лицом ошибки.

Модальные окна сообщений, которые заставляют пользователя нажимать OK и затем исправляют ошибку, делают для очень неуклюжего пользовательского интерфейса. Но всплывающее окно, которое может быть скрыто и позволяет пользователю продолжать работу, так же плохо. Существуют гораздо лучшие решения, некоторые из которых показаны в примерах проверки для Windows Forms (и, предположительно, WPF).

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