delegate void CompleteDelegate(string msg, string time); private void Complete(string msg, string time) { MessageBox.Show(msg); //ControlsEnabled(true); this.labMsg.Text = string.Format("時間:{0}", time); } private void ff(List<string> sheetNameList) Thread td = new Thread(() => { ConvertThread(sheetNameList); }); td.Start(); } private void ConvertThread(List<string> sheetNameList) { CompleteDelegate cd = new CompleteDelegate(this.Complete); BusinessLogical bl = new BusinessLogical(); DateTime dt1 = DateTime.Now; string msg = bl.Convert(txtOriginalPath.Text, txtOutputPath.Text, sheetNameList); DateTime dt2 = DateTime.Now; this.Invoke(cd, new object[] { msg, (dt2 - dt1).ToString() }); }