当前位置: 代码迷 >> .NET Framework >> .NET 能建立多少个线程?为什么小弟我建立100个就出错了
  详细解决方案

.NET 能建立多少个线程?为什么小弟我建立100个就出错了

热度:84   发布时间:2016-05-02 00:38:56.0
.NET 能建立多少个线程?为什么我建立100个就出错了。
C# code
我建立的程序是MDI程序,以下代码是在MDI子窗口执行的。为什么程序自动消息掉?什么出错了?                threads = new Thread[100];                for (int i = 0; i < threads.Length; i++)                {                    threads[i] = new Thread(ThreadProc);                    threads[i].Start(this);                }                Thread t = new Thread(ThreadProc);                t.Start();        void Do()        {A.Text="aaaa";        }        void ThreadProc(Object sender)        {            (sender as FormRefres).Do();        }


------解决方案--------------------
你直接在 ThreadProc方法写一个输出吧 离真理不远了
------解决方案--------------------
问题出在A.Text="aaaa";
由于文本框对象A是在主线程创建的,其他线程必须invoke创建者线程(主线程),请求主线程改写控件状态。
CheckForIllegalCrossThreadCalls =false;
这是.net早期版本的解决方案,不检测非法的跨线程调用,可以提高速度但存在一定的风险。
在后期版本中不建议使用该方案,而是使用invoke。
if(A.InvokeRequired)
{
...
}