我有一個用C#編寫的程序,它從磁盤中的文件中讀取很多內容,然後輸出幾行文本,而不是很多可能是100個頂部文本文件。c#程序在讀/寫過程中死機
該程序凍結大約一半通過,我是新來的C#和編程一般從研究,似乎我需要使用一個單獨的線程從一個控制窗體。兩個問題,
我應該用於讀取和一個新的寫或只是一個用於讀取功能的一個新的線程?
這樣做的最好方法是什麼?
我希望這是有道理的,我真的很感謝您的幫助!
我有一個用C#編寫的程序,它從磁盤中的文件中讀取很多內容,然後輸出幾行文本,而不是很多可能是100個頂部文本文件。c#程序在讀/寫過程中死機
該程序凍結大約一半通過,我是新來的C#和編程一般從研究,似乎我需要使用一個單獨的線程從一個控制窗體。兩個問題,
我應該用於讀取和一個新的寫或只是一個用於讀取功能的一個新的線程?
這樣做的最好方法是什麼?
我希望這是有道理的,我真的很感謝您的幫助!
如果完全讀取必須發生在寫入之前,則只需要一個線程 - 否則,可以使用兩個。
檢查這一個線程例如: http://msdn.microsoft.com/en-us/library/aa645740(v=vs.71).aspx
並確保在實現IDisposable的對象上調用Dispose()或「using」。 – mikey 2011-05-18 01:04:50
BackgroundWorker的是在這裏使用的最好的事情。這是一個很好的tutorial,它描述了它的所有事件和屬性。
簡而言之,這是你應該做的。
要記住,最重要的是既ProgressChanged和RunWorkerCompleted事件在主線程中執行,你可以使用背景工人更新UI結果。只有後臺線程中執行的DoWork事件。
也許。 BackgroundWorker的。 – 2011-05-18 00:54:23
它是一個Windows窗體應用程序或WPF? – CharithJ 2011-05-18 00:55:54
這也可以使用threadqueue很容易地完成。只需使用新的讀/寫調用EnqueueWorkerItem,它就會自動及時執行。雖然它可能是矯枉過正。 – Alxandr 2011-05-18 01:18:17