需要处理锁码图示

时间:2009-10-08 18:21:41

标签: asp.net oop process locking

我最近在另一个帖子中开始了这个问题(Reed Copsey 慷慨地回答)但我觉得我没有把问题搞好。

在我的问题的核心,我想说明如何获得 在获取/设置数据时访问数据。

我有Page.aspx.cs,在代码隐藏中,我有一个循环:

           List<ServerVariable> files = new List<ServerVariable>();

            for (i = 0; i <= Request.Files.Count - 1; i++)
            {

                    m_objFile = Request.Files[i];
                    m_strFileName = m_objFile.FileName;
                    m_strFileName = Path.GetFileName(m_strFileName);

                files.Add(new ServerVariable(i.ToString(),
this.m_strFileName, "0"));

           }

           //CODE TO COPY A FILE FOR UPLOAD TO THE
           //WEB SERVER

            //WHEN THE UPLOAD IS DONE, SET THE ITEM TO
            //COMPLETED

            int index = files.FindIndex(p => p.Completed == "0");
            files[index] = new ServerVariable(i.ToString(),
this.m_strFileName, "1");

“ServerVariable”类型获取并设置ID,文件和已完成。

现在,我需要向用户显示文件上传“进度”(实际上, 循环将ServerVariable项添加到之间的时间 list to Completed状态从0变为1。

现在,我想要一个Web服务方法“GetStatus()” 用于将文件列表(上面创建的)作为JSON字符串返回(通过 JQuery的)。状态为0的文件仍在进行中, 带有1的文件已完成。

我的问题是 - GetStatus()中的代码是什么样的?怎么样 我查询列表**为*正在填充和 实时返回结果?我被告知我需要锁定 我查询时的工作过程(设置ServerVariable数据) GetStatus()中返回的值然后解锁相同的进程?

如果我已经解释得很好,我会很感激代码插图 GetStatus()中的逻辑。

感谢阅读。

1 个答案:

答案 0 :(得分:0)

查看有关多线程锁的this链接。

您需要在读取和写入时锁定对象。