private async void BtnAttachDebugger_Click(object sender, EventArgs e) { if (_debugger.State == DebuggerState.Startup) { return; } var button = FindButton(sender as Control); if (_debugger.State == DebuggerState.Off) { button.Text = "Attaching..."; button.Enabled = false; await _debugger.AttachToProcessAsync(_runtimeServerProcess.Id, new StartDebuggingOptions { MyCodeModules = new[] { PathHelper.UserScriptDllFile } }); button.Text = "Attached :)"; _debugger.DebuggingStopped += (s1, e1) => { button.Invoke((Action)(() => { button.Text = "Attach"; button.Enabled = true; })); }; } }