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、有无其他方法动态获取已经解析了的节点数? 展开
在某一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、有无其他方法动态获取已经解析了的节点数? 展开
2个回答
展开全部
首先你调用了ReciveXML(out n,out all);
它里边有个循环,不断的给n赋值是吗?
------------------------------------------------------
label.text=n;
label1.text=all;
这两句当然要等ReciveXML(out n,out all)全部执行完毕了以后才会执行。这不是正常的代码执行顺序码。
如果要实时的更新,你可以把label.text=n;放到ReciveXML的循环里赋值啊。
它里边有个循环,不断的给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程序中没有这种机制。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询