cost 436 ms
如何在重疊的多線程累積秒表變量中使用互鎖方法

[英]How to use Interlocked Method in overlapping multi-thread cumulative Stopwatch variable

我的進度報告中嵌入了一個stopwatch ,位於async/await task. run() task. run()和parallel. for parallel. for . 秒表還捕獲過程之間的持續時間和累積持續時間。 我用MessageBox.Show(Duration + " / " ...

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個重復項。 這可以通過以下實現來解決: ...

32位環境下64位變量的原子增量

[英]Atomic increment of 64 bit variable on 32 bit environment

寫另一個問題的答案出現了一些有趣的事情,現在我無法理解Interlocked.Increment(ref long value)如何在32位系統上運行。 讓我解釋。 在編譯32位環境時,Native InterlockedIncrement64現在不可用了,好吧,這是有道理的,因為在.N ...

在#ach循環中,C#++運算符是否成為線程安全的?

[英]Does C# ++ operator become threadsafe in foreach loop?

最近我從VB轉到C#,所以我經常使用C#到VB.NET轉換器來理解語法差異。 在將下一個方法移到VB時,我發現了一個有趣的事情。 C#原始代碼: VB.NET結果: C#的++運算符替換為System.Threading.Interlocked.Increment是否意味 ...

使用互鎖類進行無鎖編程

[英]Programming without locks using Interlocked class

我需要使用Interlocked類處理C#應用程序中的鎖。 我有這樣的代碼: 而當我想替換Interlocked類上的ThreadProc中的鎖時,例如: 我收到此錯誤: 並且出現此錯誤:錯誤CS1503:參數#1' cannot convert ulong #1' c ...

讀取由其他線程上的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