c#多线程的同步和异步可以举例说下吗?多线程C#
解决方案 »
- for死循环暂停的问题
- C#winform如何改变checkBox选择框的大小
- 如何学好MS SQL SERVER的存储过程?
- 困惑的非常糊涂,MDI窗体的问题,居然会出两套按钮,详细情看我的图
- [求助]那位大哥做过类似Excel中选择单元格的那种效果,可否介绍一下经验或是给个例程。
- 实时曲线显示问题??
- 数据库连接问题,同样的连接参数在VB中可以连,但在c#中无法连接???
- C# 数据显示交互,附图
- 使用FOR循环向一个DataTable中插入大量数据是提示操作超时
- 第一次执行异常,第二次就能正常运行。这个问题怎么解决?
- C#在win7触摸屏多点触控开发应用的问题
- 根据一个路径下载局域网文件
thread th2=new thread...th1.isbackground=true
th2.isbackground=trueth1.start();
th2.start()这个是同步的还是异步的?调用的方法就是一个循环
其实你这个只是创建了两个后台线程.
他们是不相关的,同步主要的针对于域中同一个资源的访问.同步的话,是控制对资源的访问,防止一个线程未访问完成另一个线程就访问,这样就会很不安全.
class AState {
private int state = 1;
private static AState syc = new AState();
void DoSomeThingDangerous(int nLoop) { //传入1.
if(state == 1) //非同步,假设线程A判断正确后,线程切换,B也判断正确执行"now is 2",又切换回线程A还是打印"now is 2",这就是典型的不安全.
Console.WriteLine("now is " + nLoop);
state = 1;
} void DoSomeThingNormal(int nLoop) { //传入1.
lock(syc) { //同步,只能是该线程访问结束该域后别的线程才能访问.
if(state == 1)
Console.WriteLine("now is " + nLoop);
state = 1;
}
}
}