I'm currently filling my DataGridView
using Tasks. At first, when I fill in dataTable
, everything is fine, but when I continue to the UI thread, my form is unresponsive for a short time.
How can I avoid this unresponsive period?
if (bar == null)
{
bar = CNPR.Controls.Helper.GetWaitingBar(this);
this.Controls.Add(bar);
}
bar.Visible = true;
bar.BringToFront();
bar.StartWaiting();
panel1.Enabled = false;
rasteTableBindingSource.DataSource = null;
var t = Task.Factory.StartNew(() => rasteTableTableAdapter.FillBySearch(chapYarDataSet.rasteTable))
.ContinueWith(delegate
{
bar.StopWaiting();
bar.Visible = false;
panel1.Enabled = true;
rasteTableBindingSource.DataMember = chapYarDataSet.rasteTable.TableName;
rasteTableBindingSource.DataSource = chapYarDataSet;
}, TaskScheduler.FromCurrentSynchronizationContext());