请问如何执行一个function,委托,并获取返回值

[复制链接]
查看11 | 回复10 | 2021-1-27 05:40:54 | 显示全部楼层 |阅读模式
PrivateSubForm_load(senderAsObject,eAsEventArgs)
'调用计算
'立刻去干别的事情
EndSub
Function计算(a,b)AsString
'开始30秒的计算
Return(a+b)
EndFunction
计算的function代码运行完以后自动调用反馈
sub反馈(结果)
msgbox结果
endsub

大哥们,,请留下代码,越简单越好能看一眼就明白的
分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:40:54 | 显示全部楼层
Task.Factory.StartNew(Sub()反馈(计算(a,b))
回复

使用道具 举报

千问 | 2021-1-27 05:40:54 | 显示全部楼层
Task.Factory.StartNew(Sub()反馈(计算(a,b)))
少了个括号
回复

使用道具 举报

千问 | 2021-1-27 05:40:54 | 显示全部楼层
callback
回复

使用道具 举报

千问 | 2021-1-27 05:40:54 | 显示全部楼层
PrivateSubForm_load(senderAsObject,eAsEventArgs)
'调用计算
'立刻去干别的事情
启动线程
DimtAsNewThreading.Thread(AddressOf计算)
t.start
EndSub

Function计算(a,b)AsString
'开始30秒的计算
反馈(a+b)
EndFunction
计算的function代码运行完以后自动调用反馈
sub反馈(结果)
msgbox结果
endsub
回复

使用道具 举报

千问 | 2021-1-27 05:40:54 | 显示全部楼层
DIMA1ASDouble
DIMA2ASDouble
PrivateSubForm_load(senderAsObject,eAsEventArgs)
'调用计算
'立刻去干别的事情
启动线程
A1=1
A2=2
DimtAsNewThreading.Thread(AddressOf计算)
t.start
EndSub

Function计算()AsString
'开始30秒的计算
反馈(A1+A2)
EndFunction
计算的function代码运行完以后自动调用反馈
sub反馈(结果)
msgbox结果
endsub
回复

使用道具 举报

千问 | 2021-1-27 05:40:54 | 显示全部楼层
第一次搞错了,带参数不能直接这样操作。但是你可以换成第二种方式代替。
回复

使用道具 举报

千问 | 2021-1-27 05:40:54 | 显示全部楼层
task就好了,有结果自然更新的,.net4.0以上支持
回复

使用道具 举报

千问 | 2021-1-27 05:40:54 | 显示全部楼层
PublicClassForm1
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
EndSub
FunctionCountV(ByValA1AsInteger,ByValA2AsInteger)AsInteger
DimRtVAsInteger
'计算30秒
ForIAsInteger=0ToA1
RtV=RtV+A1*A2
Application.DoEvents()'加这个可以不用等待计算完成,可以执行其他操作
Next
ReturnRtV
EndFunction

PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
MsgBox(CountV(5,8))
EndSub
EndClass
回复

使用道具 举报

千问 | 2021-1-27 05:40:54 | 显示全部楼层
PublicClassForm1
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
EndSub
FunctionCountV(ByValA1AsInteger,ByValA2AsInteger)AsInteger
DimRtVAsInteger
'计算30秒
ForIAsInteger=0ToA1
RtV=RtV+A1*A2
Application.DoEvents()'加这个可以不用等待计算完成,可以执行其他操作
Next
ReturnRtV
EndFunction

PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
MsgBox(CountV(5,8))
EndSub
EndClass
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行