【发布时间】:2010-12-15 10:07:07
【问题描述】:
大家好,
我很想知道人们对负责在自己的线程上启动三个单独表单的可执行文件的概念有何看法。这种方法的主要原因是确保表单不能单独运行,这样我们就可以在不使用 IPC 的情况下在表单之间传递信息。
我有点不确定创建与线程相关的表单的理想位置。我假设在他们自己的线程中创建和显示表单会更好。话虽如此,我不确定这是否正常工作。我试过了,但是在表单自己的线程上调用跨线程调用不起作用(即 BeginInvoke 调用不会让它回到另一个线程上的 ShowWindow 方法)...
private void ShowWindow(string serialNumber)
{
if (this.InvokeRequired)
{
this.BeginInvoke((MethodInvoker)(delegate() { ShowWindow(serialNumber); }));
}
else
{
this.Visible = true;
this.WindowState = FormWindowState.Normal;
if (serialNumber != string.Empty)
{
knavManagement.SelectedPage = knpActivate;
activatePage.SerialNumber = serialNumber;
}
Application.DoEvents();
}
}
我尝试了许多不同的方法在它自己的线程上调用该方法,但它们都不起作用,这让我认为这可能与底层线程系统有关,因此我提出了问题。
谢谢!
克里斯。
【问题讨论】:
-
我会使用同一个线程中的所有表单,而不是每个线程。
标签: c# winforms multithreading