У меня есть приложение MDI на основе Winforms C #, и у меня есть 3 формы
- MainForm, которая является моей родительской формой
- Дочерняя форма, которая является дочерней по отношению к вышеупомянутой форме
- BaseView обе вышеуказанные формы унаследованы от этого базового класса
Если вы видите в моем BaseView, я использую Task для загрузки данных в фоновом потоке без замораживания пользовательского интерфейса, который работаетхорошо, и приложение быстро появляется.Теперь проблема в том, что, хотя эта загрузка данных происходит в фоновом режиме, я открываю свою дочернюю форму, но дочерняя форма не может получить соединение с БД, потому что фоновый поток все еще работает, есть ли в любом случае, что я могу сделать своего рода сигналмоя дочерняя форма, которая теперь установила фоновое соединение базы данных и теперь дочерняя форма может загружать данные.Или я должен изменить способ, которым я пытаюсь достичь этого.
Пожалуйста, совет.
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);
}
}