【发布时间】:2013-10-04 05:37:04
【问题描述】:
我正在尝试使用以下代码使用后台工作线程在单独的线程中在单独的线程中显示另一个表单而不是主表单:
private void simpleButton1_Click(object sender, EventArgs e)
{
//this.Opacity = 50.5;
bw.RunWorkerAsync();
GetData();
bw.CancelAsync();
}
private void GetData()
{
for (int i = 0; i < 500000; i++)
{
datatable.Rows.Add(new object[] { "raj", "raj", "raj", i });
}
}
void bw_DoWork(object sender,DoWorkEventArgs e)
{
XtraForm1 frm = new XtraForm1();
while (!bw.CancellationPending)
{
frm.ShowDialog();
frm.BringToFront();
continue;
}
e.Cancel = true;
}
但问题是,当我单击主窗体时,在单独线程中运行的另一个窗体被隐藏了。在主线程完成执行之前如何使其可见,然后很好地处理它?
【问题讨论】:
-
为什么要在线程而不是 UI 线程中创建 UI 元素?
-
使用模态对话框.. 不是这个.. :/
-
我想在主线程忙于执行时显示诸如启动画面之类的显示等待..文本
-
@SimonWhitehead 我如何在这里使用模态对话框..
-
@SimonWhitehead 你的意思是说我需要在主线程中运行启动屏幕表单并在辅助线程中进行其他处理?
标签: c# multithreading