static void Main(string[] args) { _eventHandler += ExitHandler; SetConsoleCtrlHandler(_eventHandler, true); _gpsdService = new GpsdService("***.***.***.***", 80); //_gpsdService = new GpsdService("127.0.0.1", 80); //_gpsdService.SetProxy("proxy", 80); //_gpsdService.SetProxyAuthentication("*****", "*****"); _writer = new StreamWriter("testFile1.nmea"); _gpsdService.OnRawLocationChanged += GpsdServiceOnRawLocationChanged; _gpsdService.OnLocationChanged += GpsdServiceOnLocationChanged; try { Retry.Do(_gpsdService.Connect, TimeSpan.FromSeconds(1)); } catch (AggregateException ax) { if (ax.InnerExceptions.Any(x => x.GetType() == typeof(WebException))) { Console.WriteLine("Cannot connect to the service you have given."); } } _gpsdService.StartGpsReading(); Console.WriteLine("Press enter to continue..."); Console.ReadKey(); }
private void ButtonBase_OnClick(object sender, RoutedEventArgs e) { if (_gpsdService != null && _gpsdService.IsRunning) { return; } //_gpsdService = new GpsdService("***.***.***.***", 80); _gpsdService = new GpsdService("127.0.0.1", 80); //_gpsdService.SetProxy("proxy", 80); //_gpsdService.SetProxyAuthentication("*****", "*****"); _writer = new StreamWriter("testFile1.nmea"); _gpsdService.OnRawLocationChanged += GpsdServiceOnRawLocationChanged; _gpsdService.OnLocationChanged += GpsdServiceOnLocationChanged; var task = Task.Run(() => { Retry.Do(_gpsdService.Connect, TimeSpan.FromSeconds(1)); }); task.ContinueWith(t => { if (t.Exception != null) { return; } _gpsdService.StartGpsReading(); }); task.ContinueWith(t => { MessageBox.Show(t.Exception?.ToString(), "Test", MessageBoxButton.OK); }, CancellationToken.None, TaskContinuationOptions.OnlyOnFaulted, TaskScheduler.FromCurrentSynchronizationContext()); }