生活就是点点滴滴

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

  今天下午遇到了一个小问题。多线程中定义了一个全局的Array,需要共享使用,但是遇到了传参数的问题,记录下来。后来发现不需要线程间共享了,但是还是留着以备不时之需。

 

//定义两个线程
private Thread HsvRsvMsgThread;
private Thread HsvAdsResThread;
MessageQueue queue 
= new MessageQueue(@".\private$\hrsReservation");
int resortNumber = DataProcess.ResortNumber();

protected override void OnStart(string[] args)
{
      queue.Formatter 
= new XmlMessageFormatter();
      Array hotelCodeArray 
= Array.CreateInstance(typeof(string), resortNumber);
      hotelCodeArray 
= DataProcess.FillHotelCodeArray(resortNumber);
      
//开始是注释中这么写的,后来编译报错
      
//HsvRsvMsgThread = new Thread(new ThreadStart(GetHsvRsvMsg));
      
//HsvRsvMsgThread.Start();
      
//一老鸟指点后改为(下面方法中传参一个数的话需要这么修改,多个就不知道会什么样呢)
      ParameterizedThreadStart pts = new ParameterizedThreadStart(GetHsvRsvMsg);
      HsvRsvMsgThread 
= new Thread(pts);
      HsvRsvMsgThread.Start(hotelCodeArray);

      HsvAdsResThread 
= new Thread(new ThreadStart(SendAdsResMsg));
      HsvAdsResThread.Start();
}


 
private void GetHsvRsvMsg(object o)
//private void GetHsvRsvMsg(Array arr) 这种方法需要传对象,然后再转换,好像是delegate本身就是个对象
{
     
     Array arr 
= o as Array;
     
//.................
}



 

 

posted on 2010-01-22 17:01  生活就是点点滴滴  阅读(303)  评论(1编辑  收藏  举报