VB.net: Подавить проблему с сообщением об ошибке - PullRequest
0 голосов
/ 28 июля 2010

Я прочитал страницу MSDN о том, как подавлять сообщения. Я не могу подавить предупреждения для VS2008.

Я пробовал следующие инструкции:

  1. В списке ошибок выберите предупреждение или предупреждения для подавления. Несколько предупреждений могут быть выбраны в в то же время.

  2. Щелкните правой кнопкой мыши предупреждение, укажите Подавить сообщение (я) и нажмите либо в источнике или в проекте Файл подавления.

  3. Специальное предупреждение подавлено, и предупреждение появляется в ошибке Окно списка с зачеркиванием.

Однако, когда я щелкаю правой кнопкой мыши по «Список ошибок» , я получаю только следующие опции:

  • Сортировать по
  • Показать столбцы
  • Показать справку по ошибкам
  • Копирование
  • Предыдущая ошибка
  • Следующая ошибка

Почему Visual Studios 2008 для VB.net не отображает «Подавить сообщения» ?

Я не могу сгенерировать следующие подавляющие сообщения:

<Scope:SuppressMessage("Rule Category", "Rule Id", "Justification", "MessageId", Scope = "Scope", Target = "Target")>

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

т.е. (из памяти):

chkbox1.enable = false
chkbox2.enable = false
dim dlgChkbox1 as Action = addressof Task1
dim dlgChkbox2 as Action = addressof Task2
...
if chkbox1.checked = true then
   result = dlgChkbox1.BeginInvoke(nothing,nothing)
end if
if chkbox2.checked = true then
   result = dlgChkbox2.BeginInvoke(nothing,nothing)
end if
...
if chkbox1.checked = true then
    dlgChkbox1.EndInvoke()
end if
if chkbox1.checked = true then
    dlgChkbox2.EndInvoke()
end if
...
chkBox1.enable = true
chkBox2.enable = true

Предупреждение было неинициализированной переменной. Что было не так, поскольку оно зависело от идентичных операторов if. Вместо этого я решил использовать метод обратного вызова, который оказался лучшей альтернативой и не блокировал графический интерфейс.

1 Ответ

1 голос
/ 28 июля 2010

Неправильная страница MSDN.Это говорит о подавлении предупреждений, производимых инструментом анализа кода.Совсем другое животное от компилятора VB.NET.

Для подавления предупреждений компилятора используйте Project + Properties, вкладка Compile, раздел предупреждений.Найдите конкретное предупреждающее сообщение, которое вы хотите отключить, измените настройку уведомления с «Предупреждение» на «Нет».Флажок «Отключить все предупреждения» является решением большого молотка.

...