以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  字典在异步函数下问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=166067)

--  作者:z769036165
--  发布时间:2021/5/17 11:33:00
--  字典在异步函数下问题

定义了一个字典

Dim zd As New Dictionary(Of Integer, String)

zd.Add(1,"苹果")
zd
.Add(2,"香蕉")
zd
.Add(3,"波罗")
zd
.Add(4,"桔子")
zd
.Add(5,"桃子")



有一个内部函数send()


在窗口按钮中异步执行这个函数,参数传递这个字典,同时将字典值清空


Functions.AsyncExecute("send",zd)

zd("1") = ""

zd("2") = ""

zd("3") = ""

zd("4") = ""

zd("5") = ""


在函数中定义一个字典接收传递过来的值

Dim zdcd As Dictionary(of Integer,String) = args(0)


发现zdcd("1")的值也被清空了,如果窗口中不对zd字典的值清空,则zdcd字典的值存在,请问这个不能这样写么?



--  作者:有点蓝
--  发布时间:2021/5/17 11:52:00
--  
这个是正常的,因为字典属于引用类型。如果要保留函数值,就不要清空