当前位置: 代码迷 >> Windows Mobile >> 关于WP多线程的疑惑解决方案
  详细解决方案

关于WP多线程的疑惑解决方案

热度:89   发布时间:2016-04-25 07:40:26.0
关于WP多线程的疑惑
小弟写了个多线程的测试,为何最后显示的出来的结果有时是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,执行后的结果就会有很多种情况了。
  相关解决方案