2011-05-06 48 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