interlocked

    0热度

    4回答

    我想用Interlocked.CompareExchange与从int继承,像这样的枚举类型: public enum MyEnum : int { A, B } public class MyClass { private static readonly MyEnum s_field = MyEnum.A; public void Foo() {

    2热度

    2回答

    我想为自己说清楚什么是“互锁”的意思。我阅读以下内容:“互锁函数提供了一种简单的机制,用于同步对多线程共享的变量的访问,并以原子方式对变量执行操作。” 那么下面的函数可以被称为互锁吗? #include <QtCore> #include <QAtomicPointer> QAtomicInt i; void interlockedMultiply(int factor) {

    0热度

    1回答

    我在那里我可以以原子执行加法和只是为了节省语句的情况下 - 我没了下文 int result = Interlocked.Add(ref int source, await ComputeAsync(object someObj); public async Task<int> ComputeAsync(object someObj) { // some operations

    0热度

    2回答

    我熟悉使用Interlocked.CompareExchange()与普通对象。不过,我想使用它与数组的成员: string[] myArray = new string[] { "A", "B", "C" }; string myStr = (string) Interlocked.CompareExchange(ref myArray[0], null, myArray[0]); // m

    0热度

    1回答

    我的问题很简单。 为什么联锁 - 多线程中的递增比单线程慢? 仅仅是因为Cache line bouncing(Cache line contention)? 还是有其他原因? 我使用的是英特尔i7,visual studio 2012.我使用互锁增量功能测试了计数。并且测试结果是那。 1主题 - 610385971 2主题 - 497804468 3主题 - 351516659 4线程 - 33

    10热度

    2回答

    问题我有一个令人沮丧的问题与一些代码,不知道为什么会出现此问题。 // // .NET FRAMEWORK v4.6.2 Console App static void Main(string[] args) { var list = new List<string>{ "aa", "bbb", "cccccc", "dddddddd", "eeeeeeeeeeeeeeee",

    3热度

    2回答

    是Interlocked.Read(ref long)在64位体系结构上“优化”了吗?即如果我正在编写一个可供两种体系结构使用的库,我应该关注在64位CPU上不必要地使用Interlocked.Read会对性能产生的影响吗? 我想过用这样的事情,所以我想知道,如果这是有道理的: // X64 is a preprocessor constant set for x64 builds [

    2热度

    1回答

    什么是C#的同等Java#Interlocked.Exchange(Object, Object) : Object? Java有没有办法在一个原子步骤中执行以下操作无锁:1)本地存储变量的引用2)将另一个引用设置为相同的变量?

    0热度

    1回答

    当在C++中使用原子时,我可以在指针的未使用地址位中打包其他变量。我可以自动更改标志,计数器等与一个指针。在c#中,这并不容易。我想我可以使用静态引用来表示特殊的东西,但是当它压缩堆时,我稍微担心gc移动引用。例如,在这个示例代码中,可以通过使用静态引用s_cantAddWork将原子链接列表标记为封闭添加。我的问题是,我不得不担心gc移动s_cantAddWork?我需要使用固定?到目前为止,在

    0热度

    1回答

    我们的设置是:使用AutoFac for DI的Asp.NET + MVC5。 我们有一个类(这是一个单),其管理访问令牌的各种服务。无论何时,这些令牌太接近到期(少于10分钟),我们要求新的令牌,刷新它们。我目前的实现如下所示: // member int used for interlocking int m_inter = 0; private string Token { get;