我需要在創建特定文件時觸發事件。但是,此文件是在Temp文件夾中創建的目錄中創建的。所以我將不得不設置整個Temp目錄與所有子目錄的監視,並且我關心性能影響。FileSystemWatcher性能
我知道文件的確切名稱和路徑,只需要跟蹤它的創建。輪詢File.Exists
每秒一次還是設置FileSystemWatcher
更好?也許有一種方法可以禁用除文件創建之外的所有事件的監視,也許它會比輪詢更快?
我無法真正地測試它,因爲Temp目錄的使用模式是相當不可預測的。
我需要在創建特定文件時觸發事件。但是,此文件是在Temp文件夾中創建的目錄中創建的。所以我將不得不設置整個Temp目錄與所有子目錄的監視,並且我關心性能影響。FileSystemWatcher性能
我知道文件的確切名稱和路徑,只需要跟蹤它的創建。輪詢File.Exists
每秒一次還是設置FileSystemWatcher
更好?也許有一種方法可以禁用除文件創建之外的所有事件的監視,也許它會比輪詢更快?
我無法真正地測試它,因爲Temp目錄的使用模式是相當不可預測的。
我不明白。爲什麼你必須設置「觀看」整個臨時目錄?而不只是該文件所在的文件夾?
我知道確切名稱和文件的路徑谷歌
BIT:Use FileSystemWatcher on a single file in C#
這將會比輪詢可能是更好的性能每段時間ammount的。
但仍然,我已閱讀,甚至發生在我身上,FSW不是100%可靠。
所以,我覺得兩種方法:
1)不要FSW,投票和用戶干預的混合(即刷新按鈕)
2)獲取一些細微的藥物和閱讀:https://msdn.microsoft.com/en-us/library/windows/hardware/ff540402%28v=vs.85%29.aspx
因爲它的路徑不存在程序啓動時。在某個時候Temp內的一個目錄將被創建。過了一段時間後,裏面還有一個目標。然後在一段時間後會出現目標文件。 – Poma
如果你知道什麼時候會出現,那麼你可以做#1,即使知道FSW不是很可靠。 –
'我無法真正測試它,因爲Temp目錄的使用模式是相當不可預測的.'如果這是真的,那麼不能使用多個任務/線程的代碼進行測試.... – Eser