void threadScramblingPixels(object data)
        {
            ThreadParameters param = (ThreadParameters)data;

            for (int k = 0; k < 3; k++)
            {
                for (int i = param.startX; i < param.endX; i++)
                {
                    for (int j = param.startY; j < param.endY; j++)
                    {
                        AlgorithmWrapper.WrapperPixels pixel = cppClass.threadScramblingPixels(i, j, k, param.startX, param.endX, param.startY, param.endY);
                    }
                    mutProgress.WaitOne();
                    Progress();
                    mutProgress.ReleaseMutex();
                }
            }
        }
        void threadDescramblingPixels(object data)
        {
            ThreadParameters param = (ThreadParameters)data;

            for (int k = 2; k >= 0; k--)
            {
                for (int i = param.endX - 1; i >= param.startX; i--)
                {
                    for (int j = param.endY - 1; j >= param.startY; j--)
                    {
                        AlgorithmWrapper.WrapperPixels pixel = cppClass.threadDescramblingPixels(i, j, k, param.startX, param.endX, param.startY, param.endY);

                        mutProgress.WaitOne();
                        Progress();
                        mutProgress.ReleaseMutex();
                    }
                }
            }
        }