SpeechRecognitionEngine.UnloadAllGrammars Метод

Определение

Выгружает все объекты Grammar из распознавателя.

public void UnloadAllGrammars();

Примеры

В следующем примере показана часть консольного приложения, демонстрирующая синхронную загрузку и выгрузку грамматик распознавания речи.

Loading grammars...  
Loaded grammars:  
 - Grammar1  
 - Grammar2  
 - Grammar3  

Unloading Grammar1...  
Loaded grammars:  
 - Grammar2  
 - Grammar3  

Unloading all grammars...  
No grammars loaded.  

Press any key to exit...  
using System;  
using System.Collections.Generic;  
using System.Globalization;  
using System.Speech.Recognition;  

namespace UnloadGrammars  
{  
  class Program  
  {  
    static void Main(string[] args)  
    {  
      using (SpeechRecognitionEngine recognizer =  
        new SpeechRecognitionEngine(new CultureInfo("en-US")))  
      {  
        Console.WriteLine("Loading grammars...");  

        // Create and load a number of grammars.  
        Grammar grammar1 = new Grammar(new GrammarBuilder("first grammar"));  
        grammar1.Name = "Grammar1";  
        recognizer.LoadGrammar(grammar1);  

        Grammar grammar2 = new Grammar(new GrammarBuilder("second grammar"));  
        grammar2.Name = "Grammar2";  
        recognizer.LoadGrammar(grammar2);  

        Grammar grammar3 = new Grammar(new GrammarBuilder("third grammar"));  
        grammar3.Name = "Grammar3";  
        recognizer.LoadGrammar(grammar3);  

        // List the recognizer's loaded grammars.  
        ListGrammars(recognizer);  

        // Unload one grammar and list the loaded grammars.  
        Console.WriteLine("Unloading Grammar1...");  
        recognizer.UnloadGrammar(grammar1);  
        ListGrammars(recognizer);  

        // Unload all grammars and list the loaded grammars.  
        Console.WriteLine("Unloading all grammars...");  
        recognizer.UnloadAllGrammars();  
        ListGrammars(recognizer);  
      }  

      Console.WriteLine("Press any key to exit...");  
      Console.ReadKey();  
    }  

    private static void ListGrammars(SpeechRecognitionEngine recognizer)  
    {  
      // Make a copy of the recognizer's grammar collection.  
      List<Grammar> loadedGrammars = new List<Grammar>(recognizer.Grammars);  

      if (loadedGrammars.Count > 0)  
      {  
        Console.WriteLine("Loaded grammars:");  
        foreach (Grammar g in recognizer.Grammars)  
        {  
          Console.WriteLine(" - {0}", g.Name);  
        }  
      }  
      else  
      {  
        Console.WriteLine("No grammars loaded.");  
      }  
      Console.WriteLine();  
    }  
  }  
}  

Комментарии

Если распознаватель в настоящее время загружает Grammar асинхронно, этот метод ожидает Grammar загрузки , прежде чем выгрузить все Grammar объекты из экземпляра SpeechRecognitionEngine .

Чтобы выгрузить определенную грамматику UnloadGrammar , используйте метод .

Применяется к

Продукт Версии
.NET 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)

См. также раздел