SpeechRecognitionEngine.LoadGrammarAsync Method

Asynchronously loads a specific grammar, as specified by a Grammar, for use by a SpeechRecognitionEngine.

Namespace: Microsoft.Speech.Recognition
Assembly: Microsoft.Speech (in microsoft.speech.dll)




  • grammar
    An instance of Grammar specify the grammar to add to an instance of SpeechRecognitionEngine.


If the Grammar specified by the grammar parameter has already been loaded, a TargetInvocationException will be generated.

On completion of the asynchronous loading of a Grammar, a LoadGrammarCompleted event is generated.


The example below shows a general purpose method for adding Grammar objects synchronously and asynchronously, as well as adding a handler for LoadGrammarComplete events if needed.

private void AddGrammar(Grammar grammar, bool aSync) {

    if (aSync == true) {
        if (!_grammarRequestHandler) {
            _recognizer.LoadGrammarCompleted += new EventHandler<LoadGrammarCompletedEventArgs>(onLoadGrammarCompleted);
            _grammarRequestHandler = true;
    } else if (!_recognizer.Enabled) {
        UpdateGrammarTree(_grammarTreeView, _recognizer); //needed as we are synchronous
    } else {

        _recognizer.RequestRecognizerUpdate(new GrammarRequest(grammar, GrammarRequestType.LoadGrammar));

//public delegate EventHandler onLoadGrammarCompleted(object sender, LoadGrammarCompletedEventArgs eventArgs);

public void onLoadGrammarCompleted(object sender, LoadGrammarCompletedEventArgs eventArgs) {
    //Update Grammar display upon completion of asynchronous grammar load.

    UpdateGrammarTree(_grammarTreeView, _recognizer);


Thread Safety

All public static (Shared in Visual Basic) members of this type are thread-safe. Instance members are not guaranteed to be thread-safe.


Development Platforms

Windows XP Professional with Service Pack 2 (SP2), Windows Server 2003, Windows Vista Ultimate Edition, Windows Vista Business Edition, Windows Vista Enterprise Edition

Target Platforms

See Also


SpeechRecognitionEngine Class
SpeechRecognitionEngine Members
Microsoft.Speech.Recognition Namespace
SpeechRecognitionEngine.LoadGrammar Method