需要进程锁代码说明

问题描述 投票:0回答:2

我最近在另一个线程中提出了这个问题(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、File 和 Completed。

现在,我需要向用户显示文件上传“进度”(实际上, 循环将 ServerVariable 项添加到 列出完成状态从 0 更改为 1 的时间。

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

我的问题是 - GetStatus() 内部的代码是什么样的?如何 我是否在填充列表时查询列表 实时返回结果?我被告知我需要锁定 我查询时的工作过程(设置 ServerVariable 数据) GetStatus() 返回的值然后解锁同一进程?

如果我能很好地解释自己,我会很感激的代码说明 GetStatus() 中的逻辑。

感谢您的阅读。

asp.net oop process locking
2个回答
0
投票

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

您需要在读和写状态下锁定该对象。


© www.soinside.com 2019 - 2024. All rights reserved.