cost 401 ms
VBA kernel32 InterlockedIncrement 在 64 位主机中不可用,我该怎么办? - VBA kernel32 InterlockedIncrement not available in 64 bit host, what should I do?

我正在将一些代码从 32 位 VBA 升级到 64 位。 它使用 InterlockedIncrement 函数: 这以前是由 kernel32 导出的,但仅适用于 x86 调用者。 从 64 位 Excel 运行它不是那么简单,我收到“在 kernel32 中找不到 DLL 入口点 Inter ...

可以在这个多线程循环实现中正确使用 Interlocked CompareExchange 吗? - Can Interlocked CompareExchange be used correctly in this multithreaded round-robin implementation?

由于多线程上下文中的某些速率限制,我需要在 N 个不同连接之间循环一些调用。 我决定使用一个列表和一个“计数器”来实现这个功能,它应该在每次调用的实例之间“跳一个”。 我将用一个最小的例子来说明这个概念(使用一个名为 A 的 class 来代替连接) 这按预期工作,因为它确保调用在连接之间是循环的 ...

C#:使用Interlocked来统计委托人的调用次数是否正确? - C#: Is it right to use Interlocked to count the number of calls of a delegate?

我正在玩Interlocked.Increment并且想知道哪个呼叫计数器 impl。 下面(基本上得到给定委托的调用次数)在高度并发的环境中正确地完成了它的工作(即线程安全)。public interface ICallCounter<in TInput, out TOutput> ...

处理并行作业/线程 - Handling Parallel Jobs/Threads

我正在尝试重构我的项目,现在我正在尝试研究提高应用程序性能的最佳方法。 问题 1. SpinLock 与互锁 要创建计数器,哪种方式性能更好。 或者 如果我们需要增加另一个计数器,比如counter2 ,我们是否应该声明另一个SpinLock对象? 或者它足以使用另一个boolean对象? ...

C#-像列表这样的字典上的互锁增量 - C# - Interlocked Increment on a Dictionary Like List

我知道int在内存中不会有固定位置,因此它根本不能那样工作。 但是完全相同的代码部分将使用不同的名称,参数等同时运行 我本质上需要传递一个字符串“ Name”,然后以某种方式递增我的int数组中的一项。 Dictionary<string, int> intStats = ...

Interlocked.Increment和递增值的返回 - Interlocked.Increment and return of incremented value

我们有一个方法可以维护应用程序中所有事件的全局序列索引。 因为它是网站,所以预计这种方法线程安全。 线程安全实现如下: 但是我们注意到在一些不重负载的情况下,系统中出现了重复索引。 简单测试显示,对于100000次迭代,大约有1500个重复项。 这可以通过以下实现来解决: ...

在#ach循环中,C#++运算符是否成为线程安全的? - Does C# ++ operator become threadsafe in foreach loop?

最近我从VB转到C#,所以我经常使用C#到VB.NET转换器来理解语法差异。 在将下一个方法移到VB时,我发现了一个有趣的事情。 C#原始代码: VB.NET结果: C#的++运算符替换为System.Threading.Interlocked.Increment是否意味 ...

读取由其他线程上的Interlocked更新的int - Reading an int that's updated by Interlocked on other threads

(这是以下内容的重复: 如何正确读取Interlocked.Increment'ed int字段?但是,在阅读了答案和评论之后,我仍然不确定正确的答案。) 我不拥有一些代码,不能更改为使用在多个不同线程中递增int计数器(numberOfUpdates)的锁的代码。 所有通话都使用: ...

使用InterlockedIncrement来增加STL映射的value字段。 它是线程安全的吗? - Using InterlockedIncrement to increment STL map's value field. Is it threadsafe?

我有这样定义的地图。 我正在这样使用。 我看到了这一点,并且我知道find是线程安全的。 但是我在想InterlockedIncrement(&itr-> second)也将是线程安全的吗? 上面的代码线程安全吗? 在多线程环境中,此映射中绝对没有插入。 ...

System.Threading.Timer的奇怪行为 - Strange behaviour of a System.Threading.Timer

我试图对Timer如何使用线程池有一些了解。 我写了以下简单的代码段。 令人惊讶的是,这是我得到的输出: 使用14个线程。 10使用14个线程。 18使用14个线程。 28使用14个线程。 39使用14个线程。 48使用15个线程。 58使用15个线程。 69使 ...

ConcurrentQueue一个元素被两个线程占用 - ConcurrentQueue one element is taken by two threads

我希望两个线程与一个队列一起工作。 第一个线程应该每2秒调用一次,第二个线程-每3秒调用一次。 这两个线程应同时启动。 访问队列的第一个元素时出现问题。 两个线程都采用索引为0的元素。有时,它与队列的其他元素一起发生,而不仅仅是第一个元素。 我在控制台上有这样的输出: 物品0 ...

在C#中Interlocked.Increment后如何检查溢出? - How do I check for overflow after an Interlocked.Increment in C#?

在调用Interlocked.Increment之后检查溢出的正确方法是什么? 我有一个ID生成器,该ID生成器在程序执行期间生成唯一的ID,当前我对其进行测试,使增量返回零。 鉴于我每次运行生成的ID数量很多,因此_counter在递增时会溢出(在非常大的输入下),并且在这种情况 ...

在.net中管理高/低优先级线程 - Managing high/low priority threads in .net

方案如下:有几个低优先级线程可以被高优先级线程中断。 每当高优先级线程要求低优先级线程暂停时,它们将进入Wait状态(如果它们尚未处于等待状态)。 但是,当高优先级线程发出信号通知低优先级线程可以Resume ,低优先级线程不应继续,直到所有要求低优先级线程暂停的高优先级线程都同意为止。 ...

如何在C#中高效地将唯一ID分配给对象 - How can I performantly assign unique Ids to objects in C#

我正在使用一个C#库,该库将在正常操作中创建大量小对象(请考虑编译器中的AST节点)。 我想以不会影响性能的方式为每个实例分配一个唯一的标识符(程序内唯一,而不是全局唯一)。 这些对象是不可变的,并且可以在线程之间共享,因此id在线程之间必须唯一。 这是我正在考虑的一些选项: ...

Interlocked.CompareExchange<Int> 使用 GreaterThan 或 LessThan 代替相等 - Interlocked.CompareExchange<Int> using GreaterThan or LessThan instead of equality

System.Threading.Interlocked对象允许将加法(减法)和比较作为原子操作进行。 似乎一个 CompareExchange 不仅不执行相等,而且还执行 GreaterThan/LessThan 作为原子比较将非常有价值。 假设的Interlocked.GreaterThan ...

手动编写多线程循环 - 次优可伸缩性 - Manually writing a multithreaded loop - suboptimal scalability

我编写了这个测试应用程序:它经历了从0到9999的迭代,对于该范围内的每个整数,它计算一些无用但计算密集的函数。 结果,程序输出函数值的总和。 为了让它在多个线程上运行我正在使用InterlockedIncrement - 如果在递增后迭代次数&lt;10000,则线程处理此迭代,否则它将终 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM