我與C#多線程問題。
表單內容是兩個按鈕和兩個標籤。
如果我按下第一個按鈕,會從1..to 60000循環,更新LABEL1。 (它的工作原理)
如果我按的第二個按鈕,會從1..to 6000循環更新標籤2,(我的形式滯後)。 (沒有迴應)
請幫忙!C#多線程
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace ThreadTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Thread thread = new Thread(new ThreadStart(countNumbers));
thread.IsBackground = true;
thread.Start();
}
private void button2_Click(object sender, EventArgs e)
{
Thread thread2 = new Thread(new ThreadStart(countNumbers2));
thread2.Start();
}
public void countNumbers()
{
try
{
for (int i = 0; i < 60000; i++)
{
this.Invoke((MethodInvoker)delegate()
{
label2.Text = "" + i.ToString();
}
);
}
}
catch (Exception e)
{
}
}
public void countNumbers2()
{
try
{
for (int i = 0; i < 60000; i++)
{
this.Invoke((MethodInvoker)delegate()
{
label4.Text = "" + i.ToString();
}
);
}
}
catch (Exception e)
{
}
}
private void label3_Click(object sender, EventArgs e)
{
}
}
}
您是否嘗試用交替按鈕點擊。在Button2的第一個點擊,還看你是否通過投擲他們或印刷的地方 – AjayR 2011-05-30 11:53:00
是得到任何例外..我做到了,但它是一個類似的問題 – Dezigo 2011-05-30 12:02:06
趕上(例外五) { } FYI:這是非常糟糕的代碼。如果你得到一個異常,代碼將會掩蓋它,並且它會自動失敗。 – 2011-05-30 12:04:44