在u8上開發一個winform的插件用來實現不同賬套之間的單據協同,使用的方法是用存儲過程走數據庫。因為原賬套的數據量會很大,如果直接在插件上用單線程傳輸,那肯定會造成傳輸過程,u8卡死的。一種方法是在插件上使用多線程傳輸,這種方法我沒試過,因為這種傳輸始終依賴了u8客戶端,如果傳輸時間過長,u8客戶端一直閑置起,那u8會出現倒計時自動關閉的問題,再者,也不知道u8支持插件上多線程不。
所以我用了另一種方法,另外專門寫一個控制台的程序,專門用於數據的傳輸,而且在控制台使用多線程比起在winform上使用多線程要來得方便些,並且在傳輸過程中也不會讓u8卡頓,u8關閉了,這個控制台在運行,就不會影響傳輸。
我開始做的時候,是使用Process.Start(path+"XXX.exe",data),但這樣做,在正式環境測試時,發現 data如果超過了windows系統允許的最大文件長度256個字符,就會報異常,所以這種方式我不得不放棄。
不過我想到一個辦法,那就是把data寫到一個臨時文件,每次傳輸的時候,更新這個txt文件,控制台程序就去讀這個文件,這種辦法就解決了我的問題。
不過這個插件還有另外一個問題,用datagridview綁定數據時,數據一多就卡,因為是一次查詢顯示幾千條。如果不用分頁的辦法的話,也沒試過用多線程來渲染列表,等下次做的時候試試。
