最近在編寫一個程序,主要實現了從多個Ftp站點自動下載數據,程序結構如下:Private void btnStartClicked(){ For() { //代碼多,不一一表示了,主要是對每個站進行遍歷,實現每個站數據的下載 //其中調用了下面這個函數,這個函數實現單個站的數據下載。 downSingleSite(string [] siteInfo);}} Private void downSingleSite(string [] siteInfo){/*這個函數先根據提供的站點控制信息訪問網絡,獲取下載文件的信息,并按條件進行篩選,獲取需要下載的文件信息并存入fileInfoList中。Foreach(string singleFile in fileInfoList){ 啟動一個線程執行數據下載功能;}//如果有10個文件需要下載,那么就啟動了10個線程進行下載。 While() //用于對這幾個線程執行是否完成進行判斷. { 如果沒完成Thread.sleep(3000);}}在以上程序中,我的程序能正常下載數據,但是由于在窗口服務線程中執行了這一數據下載過程,在這一服務未完成之前,其他窗口消息無法得到響應因此,當單擊窗口界面是,出現程序無響應的顯示,,而我在程序中使用了sleep()是程序睡眠,但仍然沒有效果,不知是何原因。請各位高手不吝賜教,我該如何改變我的程序結構,請稍微詳細一點,我剛入門,知識還比較欠缺。
- 2 回答
- 0 關注
- 426 瀏覽
添加回答
舉報
0/150
提交
取消