C#当从主线程调用时,我的第二个from变灰

C#当从主线程调用时,我的第二个from变灰,c#,.net,multithreading,.net-4.0,C#,.net,Multithreading,.net 4.0,使用主线程: 当显示“我的表单”时,所有字段都灰显,并且表单的所有更新也灰显 StopServicesForm stopservices = new StopServicesForm( cicsRegionSelected, serverSelected); stopservices.Show(); stopservices.stopAppServerService(); *On page load* private void StopServicesForm_Load(object send

使用主线程: 当显示“我的表单”时,所有字段都灰显,并且表单的所有更新也灰显

StopServicesForm stopservices = new StopServicesForm(
cicsRegionSelected, serverSelected);
stopservices.Show();
stopservices.stopAppServerService();

*On page load*
private void StopServicesForm_Load(object sender, EventArgs e)
{
   Region_label.Visible = true;
   displayregion_label.Visible = true;
   StoppingServicelabel1.Visible = true;
   ServiceNamelabel.Visible = true;
   Service_progressBar1.Visible = true;
}
使用新线程: Join方法似乎将第二个窗体显示为模态窗口。将显示所有字段,但在线程运行时不会更新这些字段

StopServicesForm stopservices = new StopServicesForm(
cicsRegionSelected, serverSelected);
stopservices.Sendstopserviceupdate = new
StopservicethreadCompleted(StopServicethreadCompleteCallback);
Thread thread = new Thread(stopservices.stopAppServerService);
stopservices.Show();
thread.Start();
thread.Join();  
由于我使用了一个新线程,所以我使用以下委托实例来更新表单

SetTextCallback setSet_tbServiceNameText = new SetTextCallback(results.Set_tbServiceName);            
UpdateProgressDelegate updateprog = new UpdateProgressDelegate(UpdateprogressBar);
UpdateServicetoStopLabel updateserviceName = new UpdateServicetoStopLabel(UpdateServicetostopLabel);
如果我不使用Join方法,那么除了我的主运行之外,其他一切都可以正常工作,直到最后;在新线程完成之前终止应用程序。 我花了一些时间试图弄明白这一点,所以任何帮助都会非常感激。
谢谢

您应该使用
ShowDialog
将表单显示为模式对话框,而不是通过
Join
调用阻塞UI线程