private void button2_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10; i++)
{
Thread startServer = new Thread(new ParameterizedThreadStart(start_more_server)); startServer.IsBackground = true;
startServer.Name = "线程"+i; startServer.Start(startServer.Name);
}
} public void start_more_server(object o)
{
muxConsole.WaitOne();
Interlocked.Increment(ref flag); mydelegate mydelegate = new mydelegate(outtext); //StringBuilder sb = new StringBuilder();
for (int pk = 0; pk < 10; pk++)
{
//for (int pk1 = 0; pk1 < 10000; pk1++)
for (int pk2 = 0; pk2 < 10; pk2++)
for (int pk3 = 0; pk3 < 1000; pk3++)
for (int pk4 = 0; pk4 < 10000; pk4++)
{
//textBox1.BeginInvoke(mydelegate, new object[] { pk4.ToString() });
//MessageBox.Show(pk4.ToString());
}
sb.Append(pk + "=====>" + o +"\r\n"); textBox1.BeginInvoke(mydelegate, new object[] { sb.ToString() });
} Interlocked.Decrement(ref flag);
muxConsole.ReleaseMutex(); }
如果用waitone()的时候,等待线程的执行顺序是随机的,那用什么方法能让线程按照开始等待的顺序依次执行呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货