[問題] 請問有關thread和讀寫excel?

看板C_and_CPP作者 (千里之外)時間13年前 (2013/01/17 22:22), 編輯推噓1(108)
留言9則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) visual studio 2008(VC++) 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 寫好了一個windows form 執行檔(.exe), 最後會在本資料匣輸出csv檔。 現在我想一次執行四個exe檔,原本做法是複製成4份exe檔,輸出4份csv檔 ; 現在想合併四個exe檔(但介面會更複雜,正在克服中..),但想在輸出的csv檔只有1份。 遇到問題: 1.四個exe檔幾乎同時執行,最後要將資料寫進同一份csv檔,可能會搶同個檔案?? 該用thread解決?? 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.224.126.107

01/17 22:30, , 1F
非得要同時寫嗎
01/17 22:30, 1F

01/17 22:46, , 2F
是啊...因為算大量的輸出資料,一次4筆..希望合併...
01/17 22:46, 2F

01/17 22:55, , 3F
用mutex保護寫檔的部分
01/17 22:55, 3F

01/17 23:37, , 4F
你可以建立一個專門輸出的 thread,並準備四個佇列,
01/17 23:37, 4F

01/17 23:38, , 5F
如果四個佇列都有東西,就取出一組寫入檔案。
01/17 23:38, 5F

01/17 23:39, , 6F
其它 thread 只要自己對應的佇列沒滿就把東西丟進去。
01/17 23:39, 6F

01/17 23:41, , 7F
將四個都算好,在合併到一個陣列中,最後從合併的存
01/17 23:41, 7F

01/17 23:41, , 8F
出,我想這樣會比較單純,不然你要去處理存取問題
01/17 23:41, 8F

01/17 23:42, , 9F
這樣速度會慢一點,但是應該你能夠接受
01/17 23:42, 9F
文章代碼(AID): #1G-0b1Ns (C_and_CPP)