Windows_Phone多线程测试代码最后显示的出来的结果有时是0
小弟写了个多线程的测试,为何最后显示的出来的结果有时是0,有时是50呢,愿各位大侠不吝赐教啊,代码如下:
C# code public partial class MainPage : PhoneApplicationPage
{
int num = 0;
// Constructor
public MainPage()
{
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
Thread th1 = new Thread(new ThreadStart(GetNum));
Thread th2 = new Thread(new ThreadStart(GetNum));
th1.Start();
th2.Start();
textBlock1.Text = num.ToString();
}
private void GetNum()
{
for (int i = 0; i < 50; i++)
{
num++;
}
}
}
出现这种情况,说明执行到这句textBlock1.Text = num.ToString();的时候,2个线程有可能还未开始执行,或者已经执行完了,不是同步的,这种情况不是可预见的,你试着把数值50改大一点,比如改成65555,执行后的结果就会有很多种情况了。
public partial class MainPage : PhoneApplicationPage
{
int num = 0;