none
c# 快速大量新增/刪除/讀取記憶體資料的方式?! RRS feed

  • 問題

  • 請問一下

    目前我用c#寫一個收訊號的程式

    都是用datatable 將訊號存在裡面,然後讀取,再刪除

    可是因為設備訊號可能每100ms就塞一筆到此datatable

    然後我另一個執行緒or timer拼命讀取這個這個datatable然後讀完處理後就刪除

    必須增加lock避免衝突,讀不到資料

    如果沒有加,三步五時就有讀不到資料列的錯誤訊息出現

    請問像是這種希望有兩條執行緒,一條是拼命寫入,一條是拼命讀取剛寫入的資料再刪除

    要用哪種方式比較適合呢?!

    2013年7月23日 上午 09:36

解答

所有回覆

  • 我比較好奇你為什麼不用 queue...

    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2013年7月23日 上午 09:51
    版主
  • 感謝小朱大..

    小弟研究一下^^"

    因為我大多都用習慣用的元件來達到目地

    queue的部份我只有使用電腦的MessageQueue

    2013年7月24日 上午 01:18
  • 控制同時讀取與寫入可以考慮利用ReaderWriterLock類別

    2013年7月24日 上午 02:15
  • http://msdn.microsoft.com/zh-tw/library/7977ey2c.aspx

    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2013年7月24日 上午 02:15
    版主
  • 通常我會加入一些 Waithandler , 如 ManualResetEvent 類別 

    來控制刪除的迴圈, 而且讀取暨刪除的程式碼內, 應該要先判斷 DataTable 內的 Rows 數量 .

       

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2013年7月24日 上午 03:36
    版主