线程中的同步是不是说程序开了多个线程例如UI开了一个线程,等待线程的值返回,但是现在操作UI,UI还是可以工作的?而UI开了一个线程使用阻塞那么现在UI就是无法进行操作了是不是?
UI和其他别的进程或者线程有什么区别?
UI和其他别的进程或者线程有什么区别?
解决方案 »
- winform ReportViewer 的打印布局
- 恳求CLR via C# 中文版 的下载地址
- 怎么在显示时更改列次序
- 提取html中表格的数据(表格还有嵌套)
- java和c#交互有好的思路就给分
- c# 多线程 无法获取参数 我想知道哪个线程在做什么 获取不成功
- 菜鸟300问之五---与ArcSDE连接失败
- 请朋友们给点asp.net 换肤功能 的资料,谢谢啦(一共有两种换肤.第一种简单,第二种有点神奇,改布局.有兴趣的朋友进来 look look)
- 用ADO.NET连接access时出现错误,求救!
- 刚学,简单问题请教,如何书写过程,谢谢
- C#制作的Form程序的内存和CPU使用率问题
- c#的序列化问题
而阻塞和不阻塞才是导致我能不能按的原因是不?
thread1 :
int a=0;
a = 耗时操作(); //10秒钟返回
Show(a); //不能马上执行以上thread1会因为耗时操作 而阻塞 如果你另开辟线程thread2去执行耗时操作 thread1就不会阻塞
当两个线程需要使用统一资源时 可能会考虑有一个先后的顺序(比如只有a线程做完某事 线程b才能去做) 这时候就要用到线程同步 windows是抢占式操作系统 谁前谁后没有原则的(如果你不去处理同步 后果可想而知)严格来说 阻塞和非阻塞是强调方法(代码块)的 跟线程同步与否没有关系(只不过线程同步一般要用到阻塞这种方式去实现)
1.你执行了耗时操作(阻塞方法);
2.导致调用线程(UI线程)不能及时往下执行;
3.调用线程(UI线程)不能及时处理Windows消息;
4.界面卡死。以上跟线程同步没有关系
这样的话我加不加阻塞都没有区别是吧
这个是最常用的,如果对方在处理消息的时候我想要继续操作UI界面,是不是同步和异步都可以,但是阻塞了的话就不可以操作了
不要说这个东西 这个是方法的同步调用和异步调用 同步调用就是指调用的方法是阻塞的(编写该方法的人决定的) 异步调用指这个方法是非阻塞的(编写该方法的人决定的) 你这话是从网上找的嘛? 我觉得这个不能跟“线程同步”的最初含义混淆
自己静下心 多琢磨琢磨吧