Пример #1
0
        async void TheJob()
        {
            JobStatus = AnlagenStatus.läuft;
            TcpClient tcpClient = new TcpClient();
            var       ip        = IPAddress.Parse(HEIZUNG);

            logger.Trace($"Connect {ip}");
            await tcpClient.ConnectAsync(ip, 4001);

            var stream = tcpClient.GetStream();

            using (var sr = new StreamReader(stream)) {
                while (JobStatus == AnlagenStatus.läuft)
                {
                    var neueZeileLesen = sr.ReadLineAsync();
                    await neueZeileLesen.ContinueWith((t) =>
                    {
                        var zeile = t.Result;
                        if (!string.IsNullOrEmpty(zeile))
                        {
                            context.Send((_) => NeueMeldung?.Invoke(this, zeile), null);
                            logger.Trace(zeile);
                        }
                    });
                }
            }
            tcpClient.Close();
        }
Пример #2
0
 public HSV22()
 {
     JobStatus = AnlagenStatus.gestoppt;
     task      = new Task(() => TheJob());
     context   = SynchronizationContext.Current;
     logger.Trace("ctor");
 }
Пример #3
0
 public void Stop()
 {
     logger.Trace("Stop");
     if (JobStatus == AnlagenStatus.läuft)
     {
         JobStatus = AnlagenStatus.stoppen;
         task.Wait(3000);
         JobStatus = AnlagenStatus.gestoppt;
     }
 }