private async void BtnSendMail_Click(object sender, EventArgs e) { try { DataTable dt = uIUtility.GetCheckedValuesForMail(); if (dt.Rows.Count > 0) { var confirmResult = MetroMessageBox.Show(this, "\n" + "メール送信しますか?", "Confirmation", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); if (confirmResult == DialogResult.OK) { //Show mail progress message Thread mailthread = new Thread(new ThreadStart(ShowMailLoading)); mailthread.Start(); //call mail send method from web service frmCompanyCodeListController companyCodeList = new frmCompanyCodeListController(); DataTable result = await companyCodeList.SendMail(dt); //update data grid view uIUtility.UpdateReturnedresults(result); //close mail dialog mailthread.Abort(); } } } catch (System.TimeoutException) { MetroMessageBox.Show(this, "\n" + Messages.General.ServerTimeOut, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (System.Net.WebException) { MetroMessageBox.Show(this, "\n" + Messages.General.NoConnection, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception ex) { Utility.WriteErrorLog(ex.Message, ex, false); MetroMessageBox.Show(this, "\n" + Messages.General.ThereWasAnError, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }