关于WPF UI线程间通信和资源共享问题

问题:uI主线程我定义一个全局变量a初始值为false;我令开了一个线程睡眠5秒然后判断他是否是true;如果为true继续其他操作。为false退出程序。a是在主线程一... 问题:uI主线程 我定义一个全局变量a初始值为false; 我令开了一个线程睡眠5秒然后判断他是否是true; 如果为true继续其他操作。为false 退出程序。 a是在主线程一个回调函数中调用的。 现在问题是回调函数执行成功。将a设置成true 但是在子线程中睡了5秒后还是false;为什么!!!!!!!!!!!
问题:uI主线程 我定义一个全局变量a初始值为false; 我令开了一个线程睡眠5秒然后判断他是否是true; 如果为true继续其他操作。为false 退出程序。 a是在主线程一个回调函数中调用的。 现在问题是回调函数执行成功。将a设置成true 但是在子线程中睡了5秒后还是false;为什么!!!!!!! 求高手啊。在线等啊! 急!
展开
 我来答
syuesw
2013-05-27 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:75
采纳率:0%
帮助的人:99.4万
展开全部

对于多个线程共同使用,且没有使用lock之类的同步机制对访问进行序列化的变量,应该用volatile关键字修饰,否则某些线程所取到的可能不是变量的最新旅丛竖值。

internal volatile bool a;

不过发拆大生这种情况的概率相当低,并且只有多cpu内核的情况下才有可能发生。

 

我觉得你代码什么地方写错的可能性更郑孙高,可否把相关代码贴出来?

你好孫悟空
2013-06-06
知道答主
回答量:3
采纳率:0%
帮助的人:4.7万
展开全部
WPF中不能直接操作UI主线程,要用Dispatcher
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式