请教下各位一个问题:
  我在主对话框中创建了三个线程A,B,C.它们之间相互独立,但都得调用主对话框中的成员变量和函数,三个线程中我用一个主对话框的全局变量来调用主对话框中的成员变量,这样子会不会有问题?应该要怎么做?
  如果对主对框的全局变量采用同步,那线程的设计是不是就失去的意义?因为每个线程中都要调用主对话框内的函数!
注:主对话框已写好了,若想把被子线程调用的数据写成全局的再让子线程调用会很麻烦.
  还有一个小问题:为什么在这里下载东西后回复,它下载分还是没有还给我啊!穷啊最近!!

解决方案 »

  1.   

    关键是调用的这个函数是主对话框的普通成员函数,如果两个线程同时操作主对话框的同一个成员函数那肯定会有问题的呀!因为这个成员函数还涉及到其他的成员数据.各线程操作主对话框是通过传递一个全局变量g_dlg来调用它的成员函数的.如果对g_dlg同步,那在我的设计中线程就失去了意义了,因为子线程所有硬件的操作都已写在主框的成员函数中了,子线程中只有单纯的
    while(1)
    {
       g_dlg.BinToTubePos();
    }
      

  2.   

    问些小问题,如果三个子线程同时防问同一个全局变量的不同位也是可以的吧.还有一个是,子线程的while(1)中没有用sleep()语句它也是可以切换到其他线程的,那它是多久切换一次?为什么主程序这时会变得很卡或者直接死掉?