中易网

VB 编程,关于毫时代码,怎么样才能这段代码不造成程序不响应

答案:7  悬赏:10  
解决时间 2021-05-11 18:28
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer, d As Integer
Dim e As Integer, f As Integer, g As Integer
For a = 1 To 48 Step 2
Sleep 10
For b = 1 To 48 Step 2
Sleep 10
For c = 1 To 48 Step 2
Sleep 10
For d = 1 To 48 Step 2
Sleep 10
For e = 1 To 48 Step 2
Sleep 10
For f = 1 To 48 Step 2
Sleep 10
For g = 1 To 48 Step 2
If a + b + c + d + e + f + g = 48 Then
Print a; b; c; d; e; f; g
Print
Print
End If

Next g
Next f
Next e
Next d
Next c
Next b
Next a

End Sub
最佳答案

DoEvents是把控制权交给CPU


楼主的循环加了SLEEP


应该要算蛮久


如果要程序响应就要涉及多线程技术


提供几个多线程用的API


'创建线程API

'此API经过改造,lpThreadAttributes改为Any型,lpStartAddress改为传值引用:

'因为函数入口地址是由形参变量传递,如果用传址那将传递形参变量的地址而不是函数的入口地址

' 参数dwStackSize为应用程序堆栈大小,lpStartAddress为函数入口地址

Private Declare Function CreateThread Lib "kernel32" (ByVal lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, LpthreadId As Long) As Long

'终止线程API

Private Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long

'激活线程API,参数hThread为CreateThread创建的线程句柄

Private Declare Function ResumeThread Lib "kernel32" (ByVal hThread As Long) As Long

'挂起线程API

Private Declare Function SuspendThread Lib "kernel32" (ByVal hThread As Long) As Long



至于详细的代码我建议你百度一下,很多例子

全部回答

FOR 改成DO 虽然有些慢

7个单数合计=48 可能吗?

将Sleep 10改为DoEvents程序不会无响应,不过速度会很慢。

多线程

48^7 = 587068342272,还加Sleep,你这程序什么时候才能出结果啊?过程需要优化啊。

不造成程序不响应,是需要开线程的,让线程来计算。不要用Sleep。

Dim a As Integer, b As Integer, c As Integer, d As Integer Dim e As Integer, f As Integer, g As Integer For a = 1 To 48 Step 2 For b = 1 To 48-a Step 2 For c = 1 To 48-a-b Step 2 For d = 1 To 48-a-b-c Step 2 For e = 1 To 48-a-b-c-d Step 2 For f = 1 To 48-a-b-c-d-e Step 2 For g = 1 To 48-a-b-c-d-e-f Step 2 If a + b + c + d + e + f + g = 48 Then Print a; b; c; d; e; f; g Print Print End If Next Next Next Next Next Next Next
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
借口.这只是一种请求?
我非常非常的想回家
黑牛洞我想知道这个在什么地方
很久不见的朋友,见面后该说些什么?
不想学习了 应该怎么办
市房地产经营公司家属院地址在哪,我要去那里
柯南为什么叫做柯南,不叫其他的?
如果我想做生意,有什么好项目
诺基亚5310XM看小说的问题
机读卡考号用什么笔填
加勒比海盗第四部,什么时候上映
给狗吃鱼肝油是干什么的?
慧诚出租汽车驾驶员再就业服务站在哪里啊,我
换QQ或者售号 22级,黄钻7级(需自己开通)
是我和男友说分 的,分了到2个小时,他就把硪
推荐资讯
我的电脑右下角无法点击,大概10*5CM大的一块
求游戏好看点的名字!!QQ炫舞的
帮我打出来这个符号
喜欢你生气时撅起你的嘴,迷恋你身上淡淡的香
求DJ求DJ!!!好旋律加好歌!!!
QQ炫舞参加GM活动怎样上传录像
五一节外出旅游
一本产权证,但是有2户人家东拆安置如何规定
周公解梦梦见自己捡到婴儿鞋
希望你能给我一个金山毒霸通行证,谢谢
有沒有一兩款設計標誌的免費軟件
谁是黄钻7级
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?