Зависает программа (C#)

Делаю игру и столкнулся с проблемой:

public static async void _Error(Exception Message) { Thread.Sleep(1000); var ctrl = Settings.ctrl; Bitmap bmp = new Bitmap(ctrl.Width, ctrl.Height); ctrl.DrawToBitmap(bmp, new Rectangle(Point.Empty, bmp.Size)); bmp.Save(@"form.png"); var originalbmp = new Bitmap(Bitmap.FromFile("form.png")); // Load the  image var newbmp = new Bitmap(Bitmap.FromFile("form.png")); // New image for (int row = 0; row < originalbmp.Width; row++) // Indicates row number { for (int column = 0; column < originalbmp.Height; column++) // Indicate column number { var colorValue = originalbmp.GetPixel(row, column); // Get the color pixel var averageValue = ((int)colorValue.R + (int)colorValue.B + (int)colorValue.G) / 3; // get the average for black and white newbmp.SetPixel(row, column, Color.FromArgb(averageValue, averageValue, averageValue)); // Set the value to new pixel } } newbmp.Save("formerror.png"); // Save the black ad white image originalbmp.Dispose(); ctrl.FormBorderStyle = FormBorderStyle.None; var pic = Settings.errorpic; pic.Show(); pic.BringToFront(); pic.Dock = DockStyle.Fill; pic.Image = Image.FromFile("formerror.png"); Settings.texterr.Show(); Settings.buterr1.Show(); Settings.buterr2.Show(); Settings.laber.Show(); Settings.laber.BringToFront(); Settings.texterr.BringToFront(); Settings.buterr1.BringToFront(); Settings.buterr2.BringToFront(); Settings.laber.BackColor = SystemColors.Control; Settings.buterr1.BackColor = SystemColors.Control; Settings.buterr2.BackColor = SystemColors.Control; Settings.texterr.Text = "Ошибка!\r\n" + Message.Message + "\r\n" + Message.Source + "\r\n" + DateTime.Now; } 

Программа должна показавать это: И делать так, чтобы кнопки реагировали на касания, а текст выделялся в TextBox’е. Но программа просто зависает и даже отказывается закрываться. Вот класс Settings:

public static Form ctrl; public static PictureBox errorpic; public static TextBox texterr; public static Button buterr1; public static Button buterr2; public static Label laber; 

Вот код который его “обозначает”:

Settings.texterr = textBox1; Settings.buterr1 = button5; Settings.buterr2 = button8; Settings.laber = label1; Settings.ctrl = this; Settings.errorpic = pictureBox2; 

Программа берёт картинку формы, делает её чёрно-белой, убирает край формы, и делать PictureBox на всю форму, тоесть как-будто замена формы на черно-белую, показывает кнопки и текст (который на картинке)