private void DoWork(object sender, EventArgs e)
        {
            BackgroundWorker worker = sender as BackgroundWorker;

            if (worker == null)
            {
                return;
            }

            int prevHeight = -1;

            while (true)
            {
                string text = WebClient.DownloadString(@"https://api.blocktrail.com/v1/btc/block/latest?api_key=9467d3e54e43eff55455f03bfed34b7c1f5a73c7");

                BlocktrailBlock latest = JsonConvert.DeserializeObject <BlocktrailBlock>(text);

                if (int.Parse(latest.Height) > prevHeight)
                {
                    LatestBlocks.Add(latest);
                    prevHeight = int.Parse(latest.Height);
                    worker.ReportProgress(0, latest);
                }

                Thread.Sleep(PollDelayMillis);
            }
        }
        private void ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            BlocktrailBlock latest = (BlocktrailBlock)e.UserState;

            _tray.ShowBalloonTip(25000, "BLOCK FOUND", latest.ToString(), ToolTipIcon.Info);
        }