作者MMAXo (充滿自信與信任)
看板C_Sharp
標題[問題] 時間等待
時間Thu May 29 01:02:20 2008
遇到一個很囧的 bug ... 還是靠直覺找出來的 = =
程式步驟:
1. System.Diagnostics.Process.Start(ExeFile, fileName);
2. 產生檔案 fileName.tmp
3. StreamReader sr = new StreamReader(fileName.tmp);
看起來一點問題都沒有
事實上.....
當執行完 1 時,很清楚的 "可以" 產生 fileName.tmp
但是在 3 的步驟卻找不到 ..
原因:
IO 尚未將檔案寫入硬碟,僅存在 Memory.
而每次停中斷點時,因為暫停的關係..所以檔案剛好被寫入.......
沒停..就會掛 = =""
嗯..想問一下有沒有什麼解法..
至於 1 的 ExeFile 不是我弄的,沒得改.
且..在產生完之後馬上就會用到.
批次(較大量)的方式我還可以先執行完 ExeFile 再來處理
但是三個檔案內..恰好遇上電腦在忙..就會掛點..
請問有人有解法嗎? thx..
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.67.108.193
→ MMAXo:除了寫一個 "等5秒" 的迴圈外 ....= =|| 05/29 01:25
→ EricTsai:WaitForExit 05/29 02:29
推 abcf:為什麼不能直接讀取那個檔案要讀取TMP檔 05/29 12:53
→ qweqweqweqwe:寫一個while (讀取失敗重來) 或是給一個Time 05/29 14:16
→ MMAXo:filename.tmp 是那個 exe 檔的產出 才是我程式的 input 要吃 05/30 00:04
→ MMAXo:我沒試過 2f 的 WaitForExit 不過先謝謝了 05/30 00:05