private void Stop() { state = SvrState.Stopping; cts.Cancel(); network.Dispose(); slaveTcpListener.Stop(); scriptLoopTask.Wait(100); scriptLoopTask.Dispose(); state = SvrState.Stopped; }
private void Start() { try { CompileTags(richTextBoxVar.Text); tagsView1.Load(tags); state = SvrState.Starting; cts = new CancellationTokenSource(); slaveTcpListener = new TcpListener(address, port); slaveTcpListener.Start(); network = factory.CreateSlaveNetwork(slaveTcpListener); var slave1 = factory.CreateSlave(slaveId, store); network.AddSlave(slave1); networkListenerTask = network.ListenAsync(cts.Token); scriptLoopTask = scriptLoop(cts.Token); state = SvrState.Runing; } catch (Exception ex) { jsConsole.error(ex); state = SvrState.Stopped; cts?.Cancel(); network.Dispose(); slaveTcpListener?.Stop(); scriptLoopTask.Wait(100); scriptLoopTask.Dispose(); } }