private void btnSave_Click(object sender, EventArgs e) { SaveFileDialog dlg = new SaveFileDialog(); if (dlg.ShowDialog() == DialogResult.OK) { Log("[i] Saving file..."); OutputFile outFile = new OutputFile(dlg.FileName); AtomWriter writer = new AtomWriter(); btnSave.Enabled = false; Thread writerThread = new Thread(() => { try { writer.SaveFile(InFile, outFile, Atoms); Log("[i] Done"); } catch (Exception ex) { Log(""); Log("[E] " + ex.ToString()); } BeginInvoke(new Action(() => { InFile.Close(); outFile.Close(); btnLoad.Enabled = true; btnPatch.Enabled = false; btnSave.Enabled = false; })); }); writerThread.Start(); } }