private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics     gr         = e.Graphics;
            GraphicsPath gp         = new GraphicsPath();
            int          baseRadius = ClientSize.Width > ClientSize.Height ? ClientSize.Height / 2 : ClientSize.Width / 2;

            gp.AddBezier(
                new Point(ClientSize.Width / 2, ClientSize.Height / 4),
                new Point(ClientSize.Width / 3, 0),
                new Point(0, ClientSize.Height * 2 / 4),
                new Point(ClientSize.Width / 2, ClientSize.Height)
                );
            gp.AddBezier(
                new Point(ClientSize.Width / 2, ClientSize.Height),
                new Point(ClientSize.Width, ClientSize.Height * 2 / 4),
                new Point(ClientSize.Width - ClientSize.Width / 3, 0),
                new Point(ClientSize.Width / 2, ClientSize.Height / 4)
                );

            PathGradientBrush br = new PathGradientBrush(gp);

            br.CenterPoint    = new PointF(ClientSize.Width / 2, ClientSize.Height * 5 / 9);
            br.CenterColor    = Color.White;
            br.SurroundColors = new Color[] { Color.MediumVioletRed };

            gr.FillPath(br, gp);

            DrawArrow(Color.Yellow, 2, gr, baseRadius * 2 / 5, TimeReceiver.GetTime().Second * 6); //Get time from the server
            DrawArrow(Color.DarkBlue, 5, gr, baseRadius / 3, TimeReceiver.GetTime().Minute * 6);   //Get time from the server
            DrawArrow(Color.DeepPink, 8, gr, baseRadius / 4, TimeReceiver.GetTime().Hour * 30);    //Get time from the server
            DrawScale(Color.Black, 1, gr, baseRadius, -30);
        }
        internal static void Main(string[] args)
        {
            TimeSender sender = new TimeSender();

            TimeReceiver receiver1 = new TimeReceiver();
            TimeReceiver receiver2 = new TimeReceiver();

            receiver1.Register(sender);
            receiver2.Register(sender);

            sender.SendMailTimed(1000);

            while (receiver1.MessageInfo == null && receiver2.MessageInfo == null)
            {
            }

            Console.WriteLine(receiver1.MessageInfo);
            Console.WriteLine(receiver2.MessageInfo);
        }
 private void timer1_Tick(object sender, EventArgs e)
 {
     Invalidate();
     label1.Text = TimeReceiver.GetTime().ToString("T");  //Get time from the server
 }