[C#]好用的WaitDialog
簡單的 Threading Wait Dialog
建立一個 Form 叫做 "WaitForm",讓他可以接受 action並且在背景執行
使用:
建立一個 Form 叫做 "WaitForm",讓他可以接受 action並且在背景執行
public partial class WaitForm : Form
{
private readonly MethodInvoker method;
public WaitForm(MethodInvoker action)
{
InitializeComponent();
method = action;
}
private void WaitForm_Load(object sender, EventArgs e)
{
new Thread(() =>
{
method.Invoke();
InvokeAction(this, Dispose);
}).Start();
}
public static void InvokeAction(Control control, MethodInvoker action)
{
if (control.InvokeRequired)
{
control.BeginInvoke(action);
}
else
{
action();
}
}
}
當然要記得添加WaitForm_Load事件使用:
private void btnShowWait_Click(object sender, EventArgs e)
{
new WaitForm(() => /*Simulate long task*/ Thread.Sleep(2000)).ShowDialog();
}
相關系列文章:
留言
張貼留言