static void a()//Main(string[] args) { try { client = new DebusClient(); // throws TimeoutException client.AsyncListener = OnReceiveMessage; string reply; reply = client.SendMessage("Base\\Core", "Register MyName\\Example1"); // throws TimeoutException if (reply != "Registered MyName\\Example1") { System.Console.WriteLine(reply); Thread.Sleep(453543); return; // or check if reply == "ERROR RegistrationNameTaken" } waitingForDependencies = 0; reply = client.SendMessage("Base\\Core", "IsLoaded Base\\Hotkey"); // throws TimeoutException if (reply != "Loaded Base\\Hotkey") { // Process.Start("Base\\Hotkey.exe") waitingForDependencies++; } reply = client.SendMessage("Base\\Core", "IsLoaded AnotherDev\\AnotherDep"); // throws TimeoutException if (reply != "Loaded AnotherDev\\AnotherDep") { // Process.Start("../../AnotherDev.exe"); waitingForDependencies++; } int timeout = 0; while (waitingForDependencies > 0) { Thread.Sleep(10); timeout++; if (timeout > 300) { System.Console.WriteLine("Loading takes too long"); return; } } client.SendMessageAsync("Base\\Hotkey", "Register Win F1"); // if you don't care much about result (reply will go to AsyncListener) reply = client.SendMessage("Base\\Core", "Ready"); // throws TimeoutException if (reply != "Ready MyName\\Example1") { System.Console.WriteLine(reply); Thread.Sleep(453543); return; } Thread.Sleep(123456); // some random code } catch (System.TimeoutException) { /* code */ } }
static void Main(string[] args) { try { client = new DebusClient(); // throws TimeoutException client.AsyncListener = OnReceiveMessage; string reply; reply = client.SendMessage("Base\\Core", "Register MyName\\Example1"); // throws TimeoutException if (reply != "Registered MyName\\Example1") { System.Console.WriteLine(reply); Thread.Sleep(453543); return; // or check if reply == "ERROR RegistrationNameTaken" } reply = client.SendMessage("Base\\Core", "IsLoaded Base\\Hotkey"); // throws TimeoutException if (reply != "Loaded Base\\Hotkey") { // Process.Start("Base\\Hotkey.exe") } reply = client.SendMessage("Base\\Core", "IsLoaded AnotherDev\\AnotherDep"); // throws TimeoutException if (reply != "Loaded AnotherDev\\AnotherDep") { // Process.Start("../../AnotherDev.exe"); } while (reply != "Loaded Base\\Hotkey") { reply = client.SendMessage("Base\\Core", "IsLoaded Base\\Hotkey"); Thread.Sleep(10); } // throws TimeoutException while (reply != "Loaded AnotherDev\\AnotherDep") { reply = client.SendMessage("Base\\Core", "IsLoaded AnotherDev\\AnotherDep"); Thread.Sleep(10); } // throws TimeoutException // TODO add timeout to loops above client.SendMessageAsync("Base\\Hotkey", "Register Win F1"); // if you don't care much about result (reply will go to AsyncListener) reply = client.SendMessage("Base\\Core", "Ready"); // throws TimeoutException if (reply != "Ready MyName\\Example1") { System.Console.WriteLine(reply); Thread.Sleep(453543); return; } Thread.Sleep(123456); // some random code } catch (System.TimeoutException) { /* code */ } }