0

これは私のコーディングです

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

何らかの理由で、スレッドを開始すると (このループは、リストに新しい値が表示されるかどうかをチェックし、新しいページを作成します。このコードはポイントまで機能し、その値で作成された新しいタブが表示され、約後に1 秒後に「Project is unresponsive (プロジェクトが応答しません)」と表示され、別名クラッシュしました。修正方法がわかりません。!tabControl1.TabPages.Contains(name) と別のループ スタイルを試しました。スレッドがなくても、新しいページを作成し、すぐにクラッシュします。

4

2 に答える 2

0
        if (!tabControl1.TabPages.Contains(tabPage2))
        {
            tabControl1.TabPages.Insert(1, tabPage2);
        }

これにより、テーブル ページが既に存在するかどうかがチェックされます。存在しない場合は、作成できるようになります。

于 2017-01-11T06:52:31.777 に答える
0

tabControlProgramThreadのブロックにアクセスします。したがって、実際にはそのスレッドをノンストップでブロックしています。特にこのようなタイトなループでは、アプリケーションが応答していないように見えます。

于 2012-05-03T02:37:11.543 に答える