2011-05-06 69 views
0

我寫了一個ActiveX EXE,從套接字讀取數據並更新數據庫。 當我從客戶端創建多個線程(我目前正在測試5)時,Activex exe佔用了100%的CPU使用率。有時所有線程都會啓動,但沒有任何線程會完成。我正在使用ActiveX exe中的事件。ActiveX線程高CPU使用率

的的ActiveX EXE只有兩個任務

a.Read from socket 
b.update database. 

的ActiveX EXE的大小約爲55KB。

我哪裏出錯了?

請建議。

+0

您是否調試過和/或剖析.exe以找出它花費的時間?我會在你的代碼的某個地方存在一個嚴格的循環,這個循環會不斷檢查數據是否在套接字上可用 - 這會導致CPU使用率高。 – 2011-05-06 06:55:09

+0

@請問,有沒有可用於VB6的分析工具? – ramu 2011-05-06 07:02:03

+0

我幾乎沒有觸及VB6,說實話,所以我不知道 - 會期望會有這樣的工具,壽'。如果你在調試器中運行你的應用程序並不時闖入它,你應該很好地感受大部分CPU時間到了哪裏。 – 2011-05-06 07:03:41

回答

0

如果兩行代碼,你貼上面墜落在循環中(用於/ DO WHILE /循環while),然後確保包括

DoEvents 

允許的程序來處理事件(如鼠標單擊,鍵盤,窗體重新調整大小和最小化等),而它正忙於處理其餘的代碼。

a.Read from socket 
DoEvents 
b.update database