C#中,A函数中调用B函数,B函数中含有循环体,为变量循环赋值,请问在A中如何动态获取该变量?

C#中,A函数中调用B函数,B函数中含有循环体,为变量循环赋值,请问在A中如何动态获取该变量?在某一winform窗体项目中,点击按钮解析XML文件,循环查找节点并取值。... C#中,A函数中调用B函数,B函数中含有循环体,为变量循环赋值,请问在A中如何动态获取该变量?

在某一winform窗体项目中,点击按钮解析XML文件,循环查找节点并取值。当点击按钮解析过程开始时,欲在窗体上显示XML文件的总节点数,及当前已解析完的节点数,格式类似:当前数/总数。当前数是在解析函数中的循环体中不断赋值而变化,总数是事先定义获取节点总数。
如此,我定义了解析函数 ReciveXML(out int n,out int all),其中n为当前数,在循环中赋值,all为总节点数。
当调用时,
ReciveXML(out n,out all);
label.text=n;
label1.text=all;
这样不能实现让n动态变化。而且,n和all的值只有在解析函数执行完时才能获取到。
已经尝试异步处理、多线程处理,都无法在解析函数执行的同时,实时的获取解析函数中循环赋值的n。
请问:
1、如何才能动态的获取n的值?
2、如何才能在执行解析函数之前便获取到all和n的值,并让n实时的变化?
2、有无其他方法动态获取已经解析了的节点数?
展开
 我来答
wangyu20052005
推荐于2016-06-10 · TA获得超过436个赞
知道小有建树答主
回答量:348
采纳率:0%
帮助的人:112万
展开全部
首先你调用了ReciveXML(out n,out all);
它里边有个循环,不断的给n赋值是吗?
------------------------------------------------------
label.text=n;
label1.text=all;
这两句当然要等ReciveXML(out n,out all)全部执行完毕了以后才会执行。这不是正常的代码执行顺序码。
如果要实时的更新,你可以把label.text=n;放到ReciveXML的循环里赋值啊。
追问
首先感谢,
确实把label.text=n;放到ReciveXML的循环里赋值可以实现实时更新;
然而,如果想把这个值赋给A函数中的变量,却不能实现了。如:A中的控件textbox.text=n或textbox.text=label.text,这样是无法实时更新的。
结论是只有放在循环体赋值时才能实时更新。
那么重点是我想知道,C#有没有一种方法,能在某个函数执行的同时,去获取它的变量值呢?
追答
这个c#的WPF程序中可以做到,是控件绑定依赖属性的方式,但是winform程序中没有这种机制。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冉MLiang
2014-12-19 · TA获得超过222个赞
知道小有建树答主
回答量:393
采纳率:71%
帮助的人:171万
展开全部
将这个变量打印出来,动态显示到ListBox上。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式