不好意思,上面的问题我已经解决了,现有一个多线程的问题请教各位,请多帮忙!
   我写一个WINDOWS应用程序时创建了一个线程,现要在主线程里用按扭改变一个变量的值,在创建的线程里读该变量,根据变量的值不同,线程里的操作也不同。
    问题是创建的线程不读改变后的变量值,造成操作不能控制,请问此2个线程间应如何通讯,使得改变后的变量值被该线程读取?

解决方案 »

  1.   

    不知道public static 的是否满足你的要求?
      

  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按扭改变的值线程不能接受,请教高手怎么解决这个问题?
      

  3.   

    我将sock封装成事件驱动的模式,编写了一个类库,然而在sock的datareceive事件里让一个form实例化然后show。那个form就死调。但是很明显在button的click中这么做一点问题都没有。我使用了异步和同步(多线程)两种方式,都存在这样的问题。我估计还是线程里的问题。请问有什么方法可以解决呢。谢谢
    如果要源代码,请留email。大家一起研究
      

  4.   

    [email protected]
        好哇,我现也正在研究这个问题。