主要是因为原来在构造函数里面初始化了几个全局变量,后来发现线上线程一直未停,而又个全局变量已经在外部被改变了,这个全局变量是读数据库的,线程未停,所以根本没有去重新读者个数据库了,导致数据未变。
想了下,把全局变量赋值不放奥构造函数里了,但是又担心了出现死锁之类的情况,所以有如下几个问题了
问题1:
全局变量在另外的线程被改变,会不会影响之前的线程,出现死锁之类的情况?
问题2:
如果采用更改数据库数据时,中止这个多线程,会不会有影响?
问题3:
有没有更好的办法解决这个问题多线程一直不太懂,号也是新注册的,没啥分,希望各位大侠不要嫌弃,知道的回下,谢谢了,感激不尽,急用

解决方案 »

  1.   

    多线程锁全局变量
        public static Dictionary<string, DateTime> dictionary = new Dictionary<string, DateTime>();    public static object locker = new object();//添加一个对象作为锁    public static void AddRecord()//线程1循环调用此函数
        {
            lock (locker)//锁
            {
                /*添加过程*/
                dictionary.Add("....", DateTime.Now);
            }
        }
        public static void DeleteRecord()//线程2循环调用此函数
        {
            lock (locker)//锁
            {
                /*删除过程*/
                dictionary.Remove("....");
            }
        }