我想做一个语音卡(480路通道)的应用程序,我在timer中每隔50毫秒检测一遍通道,如果发现摘机的话,就开启一个线程处理摘机以后的事情,在线程中我要多次访问DataMoudle中的一个Query(只是用到Locate方法).问题是程序老是出错,
一运行就黑屏了.
是不是一定要再开启一个线程来处理数据库?与session有什么关系?synchronize()是不是一定要使用?有没有什么好的方案?

解决方案 »

  1.   

    1:你用的数据库是否支持多线程。
    2:如果有可能有资源冲突,最好还是用synchronize()
      

  2.   

    我用的是oracel 8.16
    我的程序如是果检测到摘机的话,要传给线程通道号这个参数,而synchronize()中的方法
    只是一个方法名不能带参数的
      

  3.   

    我做过类似的开发,首先数据库要支持多线程,传给线程的参数包括通道号和一些需要定义的全局变量或者信号之类的东西,这些东西最好定义程一个数据结构,开启线程的时候把这个结构传过去就可以的,访问数据库最好还是要使用synchronize()
      

  4.   

    关键是我不知道session在这里怎么用