在線程中直接調用Appserver會報Invalid argument錯誤。
1.可以通過同步的方法。
把線程中調用Appserver的方法放入Synchronize中執行;但是這樣就達不到線程的作用了,如果在操作大數據或者網絡不好的時候可能卡死界面。
Synchronize(DownVarFile);
在DownVarFile中調用TSocketConnection .Appserver.GetFile(aDownFile, aFileKey, aFileDate, aRet);
2.設置TSocketConnection 的SupportCallbacks屬性
把SupportCallbacks設置爲FALSE就可以在線程中直接調用Appserver的方法了。
TSocketConnection .Appserver.GetFile(aDownFile, aFileKey, aFileDate, aRet);
TSocketConnection的SupportCallBacks=TRUE,
就會創建兩個東西,一個是一個不可見的Window Handle,一個是用於Socket傳輸的線程。而此傳輸線程竟然以這個Window Handle爲中心建立了一個消息循環機制,以此來監控服務器的回調等等。
3.如果要在線程中對數據庫進行訪問或者VCL操作,最好單獨創建自己的ADOConnection連接