از BackGroundWorker استفاده کنید
عملیات سنگین در پس زمینه انجام بشه و ترد اصلی برنامه مشغول نباشه
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += (o, ea) =>
{
System.Threading.Thread.Sleep(500);
کدهای برنامه مثل لود دیتاگراید در اینجا بنویسید
}));
};
worker.RunWorkerCompleted += (o, ea) =>
{
بستن فرم انتظار
};
نمایش فرم انتظار
worker.RunWorkerAsync();