Используйте фоновый поток, чтобы сделать то, что он должен сделать, и затем как-то подать сигнал (bool _backgroundCompleted
в качестве тривиального примера), что c
готов к созданию.
Создать c
из Timer
он будет периодически запускаться и ничего не делать, пока не будет установлено _backgroundCompleted
, затем создайте c
, затем убьете таймер.
Это может быть "некрасиво", но будет работать и останется простым.
Forms.Timer
, если вы спрашиваете;)
И да, НИКОГДА никогда не связывайтесь с несколькими потоками в одной форме.Вы можете иметь несколько форм в нескольких потоках, но для этого вам нужно сначала ЗАПУСТИТЬ новый поток, а затем создать форму НА нем.Он будет иметь свой собственный цикл обработки сообщений и будет работать нормально.