问题列表 - 第3133页

在C#中使用volatile(Thread.VolatileRead/Thread.VolatileWrite)

在多CP​​U机器上运行的多线程程序中,我需要使用易失性读/写来访问共享状态(下面的示例代码中的_data)以确保正确性.

换句话说,可以在cpu上缓存堆对象吗?

使用下面的示例并假设多线程将访问GetValue和Add方法,我需要ThreadA能够添加数据(使用Add方法)和ThreadB能够立即查看/获取添加的数据(使用GetValue方法) ).那么我需要向_data添加易失性读/写以确保这一点吗?基本上我不想添加要在ThreadA的cpu上缓存的数据.

/我不是锁定(强制独占线程访问),因为代码需要超快,我不从_data中删除任何数据,所以我不需要锁定_data.

谢谢.

****更新****************************

显然你们认为使用这个例子无锁是不好的主意.但是我可以在这里面对哪些副作用或例外?

如果1个线程正在迭代read值而另一个线程正在迭代update的值,那么Dictionary类型会抛出异常吗?或者我只会遇到"脏读"(在我的情况下会没问题)?

****结束更新****************************

public sealed class Data
{
    private volatile readonly Dictionary<string, double> _data = new Dictionary<string, double>();

    public double GetVaule(string key)
    {
        double value;
        if (!_data.TryGetValue(key, out value))
        {
            throw new ArgumentException(string.Format("Key {0} does not exist.", key));
        }
        return value;
    }

    public void Add(string key, double value)
    {
        _data.Add(key, value);
    }

    public void Clear()
    {
        _data.Clear();
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的回复.关于锁,这些方法几乎经常被多个线程调用,所以我的问题是有争议的锁而不是实际的锁操作.

所以我的问题是关于cpu缓存,可以将堆对象(_data实例字段)缓存在cpu上吗?我是否需要使用易失性读/写访问_data字段?

/另外,我坚持使用.Net 2.0.

谢谢你的帮助.

c# multithreading

8
推荐指数
3
解决办法
5300
查看次数

如何找到django模型基类的"具体类"

我正在尝试使用模型继承时找到django模型对象的实际类.

一些代码来描述问题:

class Base(models.model):
    def basemethod(self):
        ...

class Child_1(Base):
    pass

class Child_2(Base):
    pass
Run Code Online (Sandbox Code Playgroud)

如果我创建两个Child类的各种对象,并创建一个包含它们的查询集:

Child_1().save()
Child_2().save()
(o1, o2) = Base.objects.all()
Run Code Online (Sandbox Code Playgroud)

我想确定对象在basemethod中是否为Child_1或Child_2类型,我可以通过o1.child_1和o2.child_2访问子对象,但是它会重新获得有关基类中子类的知识.

我想出了以下代码:

def concrete_instance(self):
    instance = None
    for subclass in self._meta.get_all_related_objects():
        acc_name = subclass.get_accessor_name()
        try:
            instance = self.__getattribute__(acc_name)
            return instance
        except Exception, e:
            pass
Run Code Online (Sandbox Code Playgroud)

但它感觉很脆弱,如果我继承更多级别,我不确定会发生什么.

python django inheritance django-models

11
推荐指数
2
解决办法
5614
查看次数

有没有相当于用PHP编写的Trac?

有没有相当于用PHP编写的Trac?我需要与SVN集成的东西并且是免费的.它应该允许我浏览SVN源,进行某种错误跟踪并显示SVN中的最近更改.维基不是必不可少的.

提前致谢.

php svn bug-tracking trac

21
推荐指数
0
解决办法
9941
查看次数

如何在javascript中显示xml?

正如问题所说,它只是逃避了我的记忆如何在javascript中显示xml,我想在页面上的div中显示一些源xml,它位于另一个div中xml的处理结果旁边.

不记得是否有相当于javascript的转义来转换客户端上的实体

注意:xml文件是从服务器端提供的,因此我需要一个客户端解决方案

注意:主要问题是XML在大多数浏览器中无法正确呈现,所有括号和属性都消失了,留下的文本看起来不像xml

javascript xml

5
推荐指数
4
解决办法
6万
查看次数

如何找出目录中有多少文件?

我需要计算目录中的文件数.我可以使用该目录中的所有文件的名称System.IO.Directory.GetFiles()并获取该数组的长度,但在大型目录上需要太长时间.有没有办法获得计数而不必得到名字?

.net c# file-io

11
推荐指数
2
解决办法
3847
查看次数

XML或自己格式的文件?

何时将信息保存在XML文件中以及在自己的格式文件中时最好?

对于XML(或其他标准),我看到:

  • (+)标准格式.
  • ( - )手动修改很乏味.

对于自己格式的文件,我看到:

  • ( - )我们需要构建一个自己的解析器(非标准).
  • (+)可以很容易地手动修改文件.

xml file

2
推荐指数
2
解决办法
701
查看次数

从Javascript检测真实边框,填充和边距

有没有办法从Javascript代码中检测元素的真实边框,填充和边距?如果您查看以下代码:

<html>
    <head>
        <style>
        <!--
        .some_class {
            padding-left: 2px;
            border: 2px solid green;
        }   
        -->
        </style>
        <script>
        <!--
        function showDetails()
        {
            var elem = document.getElementById("my_div");
            alert("elem.className=" + elem.className);
            alert("elem.style.padding=" + elem.style.padding);
            alert("elem.style.paddingLeft=" + elem.style.paddingLeft);
            alert("elem.style.margin=" + elem.style.margin);
            alert("elem.style.marginLeft=" + elem.style.marginLeft);
            alert("elem.style.border=" + elem.style.border);
            alert("elem.style.borderLeft=" + elem.style.borderLeft);
        }
        -->
        </script>
    </head>
    <body>
        <div id="my_div" class="some_class" style="width: 300px; height: 300px; margin-left: 4px;">
            some text here
        </div>
        <button onclick="showDetails();">show details</button>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

如果单击按钮,则可以看到填充未报告正确.仅报告通过"样式"直接定义的属性,不报告通过CSS类定义的属性.

有没有办法找回这些属性的最终值?我的意思是浏览器计算并应用所有CSS设置后获得的值.

javascript css border margin padding

9
推荐指数
3
解决办法
2万
查看次数

建议表结构的MySQL工具或查询

几个星期前我在MySQL中使用了一个查询来描述一个表,并建议对其结构进行可能的改进.例如,如果我有一个int字段但只有该字段中的数字1-3,则建议将set(1,2,3)作为类型.

我想我正在使用phpMyAdmin,但我已经完成了我能找到的所有功能 - 分析,描述,解释,优化等 - 无济于事.我不能为我的生活记住查询的内容!

mysql structure

10
推荐指数
1
解决办法
6093
查看次数

.net体系结构:通常创建一个IRepository <T>

我使用通用存储库接口,允许我添加,查找,更新和删除不同类型的对象.然后我实现了两个具体的存储库,可以在不更改应用程序的情况下切换它们.一切都奇妙地断开了.但我遇到了障碍.我的存储库方法中的代码感觉不对,我无法弄清楚如何做得更好.这是我的代码片段:

public class OracleRepository<T> : IRepository<T> where T : new()
{
    public IQueryable<T> GetAll()
    {
        if (typeof(T) == typeof(Object1))
        {
            return (IQueryable<T>)DataAccess.GetAllObject1().AsQueryable();

        }

        if (typeof(T) == typeof(Object2))
        {
            return (IQueryable<T>)DataAccess.GetAllObject2().AsQueryable();
        }

        throw new NotImplementedException();
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是我的DataAccess(从datareader创建对象)不是通用的,并且对于它支持的每种类型的对象都有特定的方法.

我可以重写上面的内容,以便我使用泛型或其他方法避免使用if-then-elseif列表吗?

.net architecture generics repository-pattern

4
推荐指数
1
解决办法
1157
查看次数

ASP.NET成员资格密码到期

我使用ASP.NET成员资格来验证我的Web应用程序.这对我很有用.我现在必须实现密码到期.

如果密码已过期,则应将用户重定向到ChangePassword屏幕,并且不允许在不更改密码的情况下访问应用程序的任何其他部分.

有很多aspx页面.如果密码已过期,一种解决方案可能是重定向到每个aspx 的ChangePassword屏幕OnInit.有没有其他解决方案或建议.

谢谢,Jai

asp.net authentication asp.net-membership change-password

22
推荐指数
4
解决办法
2万
查看次数