★★★请帮我看一下如何控制这个程序的流程,谢谢大家●●●
我有一个程序,开了几个线程,每个线程都是循环的,会在某个特定条件下调用同一个函数,有可能同时满足条件,但是这个函数的运行需要一定的时间才能完成,请问调用过程是排队的吗?如果我想让一些调用者发现此函数被占用就放弃,但是某些调用需要优先处理如何控制.   
 简单代码如:   
 Thread   t1,t2; 
 t1=new   thread   (new   Threadstart(f1); 
 t2=new   Thread   (new   threadstart(f2);   
 private   void   f1() 
 { 
          while(true) 
             { 
                      if(.....) 
                         Dopro(1); 
                      if   (.....) 
                         Dopro(11); 
                      Sleep(1000); 
             } 
 }   
 private   void   f2() 
 { 
          while(true) 
             { 
                      if(.....) 
                         Dopro(2); 
                      if   (.....) 
                         Dopro(12); 
                   Sleep(1000); 
             } 
 }   
 private   void   Dopro(int   i) 
 { 
          ...........      //代码执行的很慢 
 }   
 现在t1,t2线程在某时,可能会每隔1秒种就调用一下Dopro(1)或Dopro(2)   过程,但是Dopro执行一次需要5秒钟,   我现在需求时   当   Dopro(1),Dopro(2)   时如果发现此过程在运行就可以放弃不执行,   但是当Dopro(11),Dopro(12)时就需要立刻执行它.   如何控制呢?   
------解决方案--------------------join
------解决方案--------------------直接把公用的代码和变量Lock起来