public async Task ShutdownAsync() { IsRunning = false; //Shutdown keybaord await keyboard.ShutdownAsync().ConfigureAwait(false); //Shutdown rabbit if (consumer != null) { consumer.Received -= Consumer_Received; consumer = null; } if (rabbitChannel != null) { rabbitChannel.Close(); rabbitChannel.Dispose(); rabbitChannel = null; } if (rabbitConnection != null) { rabbitConnection.Close(); rabbitConnection.Dispose(); rabbitConnection = null; } }
static async Task Main(string[] args) { Console.Write("Initializing console connection... "); keyboard = new KeyboardInterface(); if (!await keyboard.StartupAsync()) { Console.WriteLine("Failed. Exiting..."); return; } Console.WriteLine("Success"); keyboard.TBarValueChanged += Keyboard_TBarValueChanged; keyboard.KeyPressed += Keyboard_KeyPressed; keyboard.KeyReleased += Keyboard_KeyReleased; keyboard.RotaryValueChanged += Keyboard_RotaryValueChanged; keyboard.JoystickValueChanged += Keyboard_JoystickValueChanged; keyboard.KeyAction += Keyboard_KeyAction; Console.WriteLine("Listening for events"); Console.WriteLine("Press enter to exit"); Console.ReadLine(); Console.WriteLine("Shutting down..."); await keyboard.ShutdownAsync(); }