不好意思,上面的问题我已经解决了,现有一个多线程的问题请教各位,请多帮忙!
我写一个WINDOWS应用程序时创建了一个线程,现要在主线程里用按扭改变一个变量的值,在创建的线程里读该变量,根据变量的值不同,线程里的操作也不同。
问题是创建的线程不读改变后的变量值,造成操作不能控制,请问此2个线程间应如何通讯,使得改变后的变量值被该线程读取?
我写一个WINDOWS应用程序时创建了一个线程,现要在主线程里用按扭改变一个变量的值,在创建的线程里读该变量,根据变量的值不同,线程里的操作也不同。
问题是创建的线程不读改变后的变量值,造成操作不能控制,请问此2个线程间应如何通讯,使得改变后的变量值被该线程读取?
private void btStart_Click_1(object sender, System.EventArgs e)
{
lock( this )
{
start = true;
}
Thread thelisten = new Thread(new ThreadStart( live ));
thelisten.Start ();
thelisten.IsBackground = true;
}
private void btStop_Click_1(object sender, System.EventArgs e)
{
lock( this )
{
start = false;
}
}
private void live()
{
while( start )
{
lstBClient.Items.Add ( "12345" );
}
}
我想利用这2个按扭实现让里面的循环停止和开始的目的,可stop按扭改变的值线程不能接受,请教高手怎么解决这个问题?
如果要源代码,请留email。大家一起研究
好哇,我现也正在研究这个问题。