我有一个基于Winforms C的MDI应用程序,有3个窗体
-
主窗体是我的父窗体
-
-
BaseView上述两种形式都是从这个基类继承的
如果你在我的BaseView中看到,我使用Task在后台线程中加载数据,而不冻结UI,这很好,应用程序很快就会显示出来。现在的问题是,当数据加载在后台进行时,我正在打开我的子窗体,但子窗体无法获得数据库连接,因为后台线程仍在工作,不管怎样,我可以向我的子窗体发送某种信号,说明后台数据库连接已经设置好,现在子窗体可以加载数据了。
public partial class BaseView : Form
{
public BaseView()
{
var firstTimeInitializationTask = new System.Threading.Tasks.Task(() => { FirstTimeInitialization(); });
firstTimeInitializationTask.Start();
}
private void FirstTimeInitialization()
{
Thread.Sleep(10000); // just put this for testing purpose
DbConnection.Connect(CommonRoutines.DbConnectionString);
}
}