2011-01-27 3 views
0

можно перемещать элемент управления или, по крайней мере, копировать элемент управления в другой поток, затем тот, который был создан. Причина в том, что я хочу, чтобы элемент управления полностью загружался в фоновый поток, а затем, после того, как он был загружен, я хочу переместить элемент управления в другой поток. Например:winforms - Переместить управление в другой поток

ответ

1

Нет, это невозможно. Элемент управления должен быть создан в основном потоке.

Вы должны изменить свой код так:

BackgrundworkRunasync(object sender, DoWorkEventArgs e) 
{ 
    e.Result = GetData(); 
} 

BackGroundWorkerComplete (object sender, RunWorkerCompletedEventArgs e) 
{ 
    CreateControl mycontrol = new CreateControl() //Tyep of WindowsForm 
    mycontrol.Data = e.Result; 
    myControl.mdiparent = this; 
    myControl.Show(); 
} 
0

Нет, это запрещено. Все элементы управления должны обслуживаться одной нитью. Это поток, который вы использовали для создания окна, обычно первого потока процесса.

Смежные вопросы