读书人

还是关于多线程的有关问题 同步

发布时间: 2012-10-18 13:46:55 作者: rapoo

还是关于多线程的问题 同步
先上一段代码吧, 是一个小Demo

C# code
namespace ThreadDemo{    public partial class Form1 : Form    {        bool Init = false;        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            Thread getpara = new Thread(GetPara);            Init = false;            getpara.Start();        }        //Get必须调用Show        private void GetPara()        {            Show();            Init = true;        }        //如果调用Show一定会触发Change事件        private void Show()        {            Thread change = new Thread(Change);            change.Start(new object());        }        //此处是一事件  可以在界面上触发        private void Change()        {            if (Init == false)                return;            Thread setpara = new Thread(SetPara);            setpara.Start();        }        private void SetPara()        {            ;//Set Para        }    }}


这段代码会出现这样一个问题, 如果我多次且快速的单击Button1按钮, 会出现Init被多次重置为false, 而后被置为true, 导致判断失效

请问如何解决?? 谢谢!!!

初次接触线程同步的问题, 很是头疼

[解决办法]
看看关于多线程关于“锁”的用法
[解决办法]
多线程,用到lock ,Monitor,Mutex,Reader WriterLock.

读书人网 >C#

热点推荐