日期:2014-05-20  浏览次数:21171 次

多进程同时读取一个xml文件是否有问题? c#
 /// <summary>
        /// Load XML
        /// </summary>
        /// <param name="xmlfilename"> xml file name</param>
        /// <returns></returns>
        public static XmlDocument LoadTaskxml(string xmlfilename)
        {
            try
            {
                if (!File.Exists(xmlfilename))
                    return null;
                XmlDocument xmldocument = new XmlDocument();
                xmldocument.Load(xmlfilename);
                return xmldocument;
            }
            catch (Exception ex)
            {
                return null;
            }
        }
读出来的文件我用来
 XmlDocument xmlDoc = AsyncTaskObjectManager.LoadTaskxml(XmlFilePath);
                if (xmlDoc != null)
                {
                    TaskInfo taskinfo = SerializeHelper<TaskInfo>.ToObjectFromXmlText(xmlDoc.OuterXml.ToString());
                    taskobject.TaskInfo = taskinfo;
                    return taskobject;
                }
多进程时是否会有问题呢?

------最佳解决方案--------------------
如果仅仅是读的话,是不会涉及到同步的问题的,出现不了什么问题。但是多个进程如果使用同一个文件内核对象的话,这里会涉及到文件指针的变化问题。
------其他解决方案--------------------
只要没有进程是独占式打开文件,就没什么问题。大家都只是读的话。。。
------其他解决方案--------------------
首先保证文件只打开一次,不要每个线程中都去打开,然后保证读取过程中不会有其他线程改写xml
------其他解决方案--------------------
没人回答吗?