private void CallBackFibonacci(IAsyncResult ar)
        {
            AsyncFibonacci FibonacciDelegate = (AsyncFibonacci)ar.AsyncState;
            string         str = String.Format("Последовательность фибоначчи равна: {0}", string.Join(",", FibonacciDelegate.EndInvoke(ar)));

            this.fibonacciResult = str;
            MethodInvoker mi2 = new MethodInvoker(this.UpdateUI2);

            this.BeginInvoke(mi2);
        }
        private void button2_Click(object sender, EventArgs e)
        {
            int n;

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

            AsyncFibonacci FibonacciDelegate = new AsyncFibonacci(Fibonacci);
            AsyncCallback  cb2         = new AsyncCallback(CallBackFibonacci);
            IAsyncResult   asyncResult = FibonacciDelegate.BeginInvoke(n, cb2, FibonacciDelegate);
        }