Exemple #1
0
        private void Stop()
        {
            state = SvrState.Stopping;
            cts.Cancel();
            network.Dispose();
            slaveTcpListener.Stop();
            scriptLoopTask.Wait(100);
            scriptLoopTask.Dispose();

            state = SvrState.Stopped;
        }
Exemple #2
0
        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();
            }
        }