private void buttonFindElements_Click(object sender, EventArgs e)
 {
     if (iSWork1 == false && iSWork2 == false)
     {
         Work();
         if (initArray())
         {
             finalDet = KramerAlgorithm.MainDeterminant(TaskArray);
             if (finalDet != 0)
             {
                 FindElementsKramer();
                 FindElementsJordan();
             }
         }
     }
 }
        private async void FindElementsKramer() // Вычисление методом Крамера
        {
            iSWork1 = true;
            listBox1.Items.Clear();

            double x1 = -1, x2 = -1, x3 = -1, x4 = -1;

            await Task.Run(() =>
            {
                Tuple <double, double, double, double> FindX = KramerAlgorithm.FindKramer(TaskArray);

                x1 = FindX.Item1;
                x2 = FindX.Item2;
                x3 = FindX.Item3;
                x4 = FindX.Item4;
            });

            iSWork1 = false;

            listBox1.Items.Add("X1 = " + x1);
            listBox1.Items.Add("X2 = " + x2);
            listBox1.Items.Add("X3 = " + x3);
            listBox1.Items.Add("X4 = " + x4);
        }