多线程操作同一个文件,向文件写数据,能不能实现?
这个问题已经困扰我好久了,请各位高手帮忙,先谢谢大家了 
 我的线程是单独放在一个类里面,通过创建这个类的对象来创建线程,本来想用锁来控制线程,但是线程是在不同对象里的,所以没法控制,用lock,mutex,monitor都没用,但现在又遇到多线程写同一个文件这个问题,真是这个问题搞死了, 
 我的结构如下: 
 class   A 
 { 
       .......... 
       private   void   bt_select_Click(object   sender,   System.EventArgs   e) 
       { 
             .... 
             for(int   i=0;i <xmllist.Count;i++) 
             { 
                      B   b=new   B(xmllist[i],i); 
             } 
             .... 
       } 
       .......... 
 }     
 Class   B 
 { 
       ...... 
       public   B(string   ip,string   i) 
       { 
             Thread   thd   =   new   Thread(new   ThreadStart(ExcuteImport)); 
             j=i+1; 
             thd.Name= "线程 "+j+ ",支队ip: "+ip; 
             sb_log.Append( "/*******************************/ "); 
             sb_log.Append( "【 "+thd.Name+ "】 "); 
             thd.Start(); 
       } 
       ....... 
       private   void   writeFileLog() 
       { 
             DateTime   dt=DateTime.Now; 
             FileStream   fs; 
             string   path=Directory.GetCurrentDirectory()+ "\\log\\ "; 
             string   filename=dt.ToString( "d ")+ ".log "; 
             StreamWriter   writeFileLog;   
             if(!Directory.Exists(path)) 
             { 
 	Directory.CreateDirectory(path); 
             } 
             fs=new   FileStream(path+filename,FileMode.OpenOrCreate,FileAccess.Write,FileShare.ReadWrite);   
             writeFileLog=new   StreamWriter(fs); 
             writeFileLog.Write(sb_log); 
             writeFileLog.Close(); 
             fs.Close(); 
          } 
 }
------解决方案--------------------可以啊  异步操作
------解决方案--------------------要用lock 在同一时刻只能有一个线程写该文件
------解决方案--------------------要确保同一时刻只能有一个线程操作该文件。。。。
------解决方案--------------------线程同步一定要小心呀
------解决方案--------------------lock吧... 
 不过我上个程序里面发现有lock锁不住的东西...........
------解决方案--------------------.NET Framework 类库   
 FileOptions 枚举   
 注意:此枚举在 .NET Framework 2.0 版中是新增的。    
 表示用于创建 FileStream 对象的附加选项。    
   成员名称 说明  
   Asynchronous 指示文件可用于异步读取和写入。      
  public FileStream(string path, FileMode mode, FileAccess access, FileShare share, int bufferSize, FileOptions options);   
------解决方案--------------------可以将所有写文件的操作交给一个线程来做,其他来调用并Lock
------解决方案--------------------