synclock

    0熱度

    1回答

    有人可以幫助我理解synclock語句的工作原理嗎?我知道還有一些關於synclock的帖子,但我無法很好地回答這些問題。我正試圖讓一個簡單的多線程示例啓動並運行,但遇到了麻煩。起初我嘗試了下面的代碼。 Public Class Class1 Public list As List(Of Integer) = New List(Of Integer) Public Sub a

    5熱度

    1回答

    我有一個應用程序內服務,它允許我從各種來源提供消息,並將其放入一個簡單的列表中。該服務在其自己的線程中運行,將定期將列表中的所有消息處理爲各種文件;每個源的一個文件,然後進行大小管理。 我的問題是關於檢查消息並對訪問列表的代碼執行鎖定的正確方法。只有兩個地方可以訪問該列表;一個是將消息添加到列表中,另一個是將消息從列表轉儲到處理列表中的地方。 添加一條消息到列表: Public Sub Write

    0熱度

    1回答

    跟進this post。我的目標是隻有一個Calculate的時間,所以我增加了一個爲SyncLock: Public Sub Calculate(Optional inBack As Boolean = True) If Not inBack Then InternalCalculate(-1, False) Else If CalcThread Is

    0熱度

    1回答

    你好還有stackoverflow!我只需切入下面的步驟: 我有一個使用TCP的服務器/客戶端程序,並且我在用於放入讀取數據包的隊列中遇到了一些問題。一旦數據包被讀取,它就會進入隊列,如果程序不忙處理數據包,它將處理它並從隊列中取出隊列。 這裏是排隊數據的代碼: If ReadIndex = ReadBuffer.Length Then SyncLock ReadQueue

    0熱度

    1回答

    我有一個Module,我想用來緩存一些東西。這很簡單。我想避開ConcurrentDictionary,因爲它需要有保證的操作。 Public Module SchemaTableCache Private lockObject As New Object Private columnCache As New Dictionary(Of String, SortedSet(Of

    1熱度

    1回答

    MS參考:http://msdn.microsoft.com/en-us/library/3a86s51t(v=vs.71).aspx 「的類型中一個的SyncLock語句中的表達式必須是引用類型,例如一個類,模塊,接口,陣列或委託」。 場景:多線程讀取和編輯列表。 我知道這將避免出現競爭狀況: SyncLock TheList TheList.item(0) = "string" End S

    2熱度

    1回答

    我的情況是我有以下方法,使用SyncLock確保一次寫入一個線程的文件。 Private Shared lockThis As New Object Public Sub Process() SyncLock lockThis File.AppendAllText("c:\jamo\foo.txt","foo") End SyncLock End Sub 我

    2熱度

    2回答

    我需要從(後臺)線程列表中讀取,而它可能會從另一個(主線程)更新。所以我試圖做一個臨時列表不要訪問原始對象。由於更新可能發生在多個地方,因此將SyncLock放置在讀取邏輯上會很方便。這本質上是錯誤的嗎?我正確鎖定這個選項的方法有哪些,或者其他方式在多線程條件下獲取列表的可訪問副本? ' In Main thread: Public SomeList = New List(Of SomeClas

    1熱度

    1回答

    我有一個類管理自動刷新一些對象,也允許您手動刷新下面的代碼。我想讓它線程安全。 Public Function ForceRefresh() As Foo DoRefresh() ResetTimer() Return Me.CurrentFoo End Function Private Sub DoRefresh() Me._currentFoo =

    1熱度

    2回答

    我的fpga是斯巴達3E-100 Cp132。我有四個按鈕作爲我的輸入,我想通過使用它們來增加電路板7段上的四位數字。 VHDL代碼低於: entity main is port(b1,b2,b3,b4 : in STD_LOGIC; clk : in STD_LOGIC; sseg : out STD_LOGIC_VECTOR(0 to 6);