0

这是我的编码

Thread groupid = new Thread(() => 
{
        while(true)
        {
            GroupIds.ForEach(delegate(String name)
            {
                if (tabControl1.TabPages.ContainsKey(name))
                {
                }
                else 
                    tabControl1.TabPages.Add(name);
            });
        }
});

出于某种原因,如果我启动线程(此循环检查列表中是否出现新值,然后创建一个新页面。这段代码工作到了这一点,它将显示一个使用该值创建的新选项卡,然后在大约1 秒它说“项目没有响应”也就是它崩溃了。所以我不知道如何修复它,我尝试了!tabControl1.TabPages.Contains(name),以及不同的循环样式。即使没有线程,它使新页面然后立即崩溃。

4

2 回答 2

0

访问tabControlProgramThread 的块。所以你实际上是在不停地阻塞那个线程。尤其是在如此紧密的循环中,应用程序看起来像是没有响应的。

于 2012-05-03T02:37:11.543 回答
0
        if (!tabControl1.TabPages.Contains(tabPage2))
        {
            tabControl1.TabPages.Insert(1, tabPage2);
        }

这将检查表页是否已经存在,如果不存在,这将允许您创建一个。

于 2017-01-11T06:52:31.777 回答