c#多线程的同步和异步可以举例说下吗?多线程C#

解决方案 »

  1.   

    thread th1=new thread...
    thread th2=new thread...th1.isbackground=true
    th2.isbackground=trueth1.start();
    th2.start()这个是同步的还是异步的?调用的方法就是一个循环
      

  2.   

    这个应该是异步吧.
    其实你这个只是创建了两个后台线程.
    他们是不相关的,同步主要的针对于域中同一个资源的访问.同步的话,是控制对资源的访问,防止一个线程未访问完成另一个线程就访问,这样就会很不安全.
    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;
                }
            }
        }
      

  3.   

    参考这里:http://msdn.microsoft.com/zh-cn/library/ms228963.aspx