C#判断到了if条件为真,但是却并不执行if里的语句。

我现在有这么一部分代码:while(IsOpen){try{if(text.Contains("IROSloaderstart")){MessageBox.Show("有... 我现在有这么一部分代码:
while (IsOpen)
{
try
{
if (text.Contains("IROS loader start"))
{
MessageBox.Show("有");
WriteMacLabel.Text = "";
OtherTestLabel.Text = "";

}
}
catch { }
}
已经弹出了Box,显示的有,但是我的WriteMacLabel和OtherTestLabel并没有被清空,我试了各种方法,都是这样的。请问是什么原因。我用的是多线程编程,新建线程判断是否存在IROS loader start,若存在就执行两个Label清空,MessageBox是为了方便观察调试时临时加上去的。很是郁闷,为什么判断到存在了,但是Label却没有清空。
展开
 我来答
醉酒银虫
推荐于2016-10-28 · TA获得超过339个赞
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:256万
展开全部
要用Invoke来滑举神信亏调用,答镇多线程

this.Invoke(new Action(() => {
WriteMacLabel.Text = "";
OtherTestLabel.Text = "";
}));
追问
厉害,大神,问题解决了,学习了。我想继续问下,为什么我那种方法检测到了,但是却并不执行if里面的语句呢。我才接触C#几天,以前用的VC++,很多地方不明白。求指点啊。
追答
你那个不是没执行,而是报错了,你在catch里面加个断点就看到了,是无法访问此对象,因为另一个线程拥有此对象,差不多的意思。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百思卜得其解
2015-01-12 · TA获得超过122个赞
知道小有建树答主
回答量:132
采纳率:100%
帮助的人:54.4万
展开全部
检查下 是否在UI里给 lab默认值睁高
尝试下不要赋空 赋羡凯个其他值 在前兄早唤面加上this.WriteMacLabel.Text="";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
放羊的小星星
2015-01-12 · TA获得超过4066个赞
知道大有可为答主
回答量:2187
采纳率:60%
帮助的人:1557万
展开全部
WriteMacLabel.Text = "誉冲";
OtherTestLabel.Text = ""; 后加
WriteMacLabel.Reflesh();
OtherTestLabel.Reflesh()亏晌;

试庆空歼试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3aa3dec
2015-01-12 · TA获得超过343个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:143万
展开全部
是不是其他的地方又对WriteMacLabel和OtherTestLabel赋值了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式