// Process Messages Received private void processMessages() { ThreadStart thrdProc = () => { while (true) { CsMessage msg = translater.getMessage(); if (msg.contain_key("command")) { string msgId = msg.value("command"); if (dispatcher_.ContainsKey(msgId)) { dispatcher_[msgId].Invoke(msg); } else { update_status("Invalid message!"); } } } }; recv = new Thread(thrdProc); recv.IsBackground = true; recv.Start(); }
// Update test result private void handle_result(CsMessage msg) { new Thread(() => { this.Dispatcher.Invoke(new Action(() => { //Display test results in GUI string result_info = ""; result_info = "Name: "; if (msg.contain_key("name")) { result_info += msg.value("name"); } result_info += "\nAuthor: "; if (msg.contain_key("author")) { result_info += msg.value("author"); } result_info += "\nTime: "; if (msg.contain_key("time")) { result_info += msg.value("time"); } result_info += "\nLibrary: "; if (msg.contain_key("dll")) { result_info += msg.value("dll"); } result_info += "\nResult: "; if (msg.contain_key("result")) { result_info += msg.value("result"); } result.Items.Add(result_info); })); }).Start(); }