private void CallBackEvklid(IAsyncResult ar)
        {
            AsyncEvklid evklidiDelegate = (AsyncEvklid)ar.AsyncState;
            string      str             = String.Format("Наибольший общий делитель равен: {0}", evklidiDelegate.EndInvoke(ar));

            this.evklidResult = str;
            MethodInvoker mi3 = new MethodInvoker(this.UpdateUI3);

            this.BeginInvoke(mi3);
        }
        private void button3_Click(object sender, EventArgs e)
        {
            int number1, number2;

            try
            {
                number1 = (int)numericUpDown3.Value;
                number2 = (int)numericUpDown4.Value;
            }
            catch (Exception)
            {
                MessageBox.Show("Введен неверный тип данных. Введите число!");
                numericUpDown3.Value = 0;
                numericUpDown4.Value = 0;
                return;
            }

            AsyncEvklid   evklidiDelegate = new AsyncEvklid(simpleEvklid);
            AsyncCallback cb3             = new AsyncCallback(CallBackEvklid);
            IAsyncResult  asyncResult     = evklidiDelegate.BeginInvoke(number1, number2, cb3, evklidiDelegate);
        }