private void ProcessSynchronizingEvents(WinWrap.Basic.BasicNoUIObj basicNoUIObj) { string commands = commands_.ReadAll(); if (!string.IsNullOrEmpty(commands)) { timelimit_ = DateTime.Now + new TimeSpan(0, 0, 10); // timeout in ten seconds string[] commands2 = commands.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); foreach (string command in commands2) { string[] parts = command.Split(new char[] { ' ' }, 2); int id = int.Parse(parts[0]); string param = Encoding.UTF8.GetString(Convert.FromBase64String(parts[1])); basicNoUIObj.Synchronize(param, id); } } }
void basicNoUIObj_DoEvents(object sender, EventArgs e) { WinWrap.Basic.BasicNoUIObj basicNoUIObj = sender as WinWrap.Basic.BasicNoUIObj; if (basicNoUIObj.Synchronized) { conns_.ForEachConnection(conn => { string[] commands = conn.GetReceviedData("\r\n"); foreach (string command in commands) { string param = Encoding.UTF8.GetString(Convert.FromBase64String(command)); basicNoUIObj.Synchronize(param, conn.Id); } }); } else if (DateTime.Now >= timelimit_) { timedout_ = true; // time timelimit has been reached, terminate the script basicNoUIObj.Run = false; } }