Отчеты об ошибках графического интерфейса - PullRequest
1 голос
/ 01 апреля 2009

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

Я пытался создать диалог (форму Windows, которую я создал) из класса DatabaseUpdater. Однако, это зависает, и я остаюсь с белым квадратом вместо сообщения об ошибке. Я пытался порождать диалог в отдельном потоке - в результате диалог появляется и исчезает практически мгновенно. Очевидно, меня это не совсем удивило, но попытки сохранить диалог привели к тому же эффекту белого ящика.

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

Ответы [ 3 ]

2 голосов
/ 01 апреля 2009
1 голос
/ 01 апреля 2009

Предполагая, что задача BackgroundWorker вызывается из потока пользовательского интерфейса, вы должны проверить и отобразить все ошибки в обработчике события RunWorkerCompleted - не пытайтесь обрабатывать их в методе обработчика DoWork ...

0 голосов
/ 01 апреля 2009

Возможно, не то, что вы ищете, но вы можете получить некоторое преимущество от свойства InvokeRequired и методов Invoke в основной форме.

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