//----< load queryrequest processing into dispatcher dictionary >------ private void DispatcherLoadQueryRequest() { Action <CsMessage> queryrequest = (CsMessage rcvMsg) => { Action clearFiles = () => { QueryControl.clearFiles(); }; Dispatcher.Invoke(clearFiles, new Object[] { }); var enumer = rcvMsg.attributes.GetEnumerator(); while (enumer.MoveNext()) { string key = enumer.Current.Key; if (key.Contains("hasname")) { Action <string> process = (string name) => { int i = 0; while (i < name.Length) { string s = ""; while (name[i] != '+') { s = s + name[i]; i++; } if (s != "") { QueryControl.addFile(s); } i++; } }; Dispatcher.Invoke(process, new Object[] { enumer.Current.Value }); } } }; addClientProc("queryrequest", queryrequest); }