delphi程序,unit1作为主窗体,用于程序的主要操作;我在unit中用delphi的类TThread开启了一个新线程dealThread,用于主要的数据处理,当然作为一个工程,程序中还有很多其他的窗体,用于完成各种功能;那么我想问的是,假如我在线程dealThread中调用了unit1中的函数以及工程中其他窗体中的函数的话,会出现线程同步的问题?
    其实我是对delphi程序的执行过程不是太了解,主线程是如何执行的?是不是工程中的所有窗体都是属于程序的主线程?

解决方案 »

  1.   

    要看函数里面干啥了。如果访问了界面就需要同步,比如ShowMessage之类的。
      

  2.   

    多线程同步——这是编程设计思想,并不与某个具体的语言必然联系,其方法大都类似,临界区、互斥、信号量……Delphi也都有这些技术,只是封装模式与使用方法稍有不同,你针对性的学习一下就行了。特别的是在Delphi中如果非主线程要去操作主线程界面上的东西,需要特别注意同步处理,当然Delphi的TThread类都已经把方法封闭好了,学会调用就行。可以参考:
    http://blog.csdn.net/adamrao/article/details/7450945
    http://www.cnblogs.com/cardon/archive/2010/03/10/1682130.html
      

  3.   

    在线程dealThread中调用了unit1中的函数以及工程中其他窗体中的函数,
    只要它们没有操作界面,是没问题的
      

  4.   

    这个要情况了,楼主可以看看万一的博客,挺详细的线程知识http://www.cnblogs.com/del/category/174761.html