代码如下:
class ThreadPro
    {
         public static IList<Model.Keyword_Model> StaticMList = new List<Model.Keyword_Model>();
         public void Results(object KeywordsId)
        {
          for (int i = 0; i < Keywordtype.Length; i++)
            {
                            Model.Keyword_Model MModel = new jingjiaprj.Model.Keyword_Model();
                            MModel.KeywordId = Keywordtype[i].keywordId.ToString();
                            MModel.Keyword = Keywordtype[i].keyword;
                            MModel.Price = Keywordtype[i].price.ToString();
            }
         }
     }
class FolderList
{
     Thread thread1 = new Thread(new ParameterizedThreadStart(theapro.Results));
     thread1.Start(keyids);
     if (ThreadPro.StaticMList != null && ThreadPro.StaticMList.Count > 0)
            {
                for (int i = 0; i < ThreadPro.StaticMList.Count; i++)//StaticMList的值总为空
                {
                    //输出操作;
                }
            }
}

解决方案 »

  1.   

    if (ThreadPro.StaticMList != null && ThreadPro.StaticMList.Count > 0)
      {
      for (int i = 0; i < ThreadPro.StaticMList.Count; i++)//StaticMList的值总为空
      {
      //输出操作;
      }
    ThreadPro.StaticMList != null满足条件?不为空是多少?
      

  2.   

    try..class ThreadPro
      {
      public static IList<Model.Keyword_Model> StaticMList = new List<Model.Keyword_Model>();
      public static void Results(object KeywordsId)
      {
      for (int i = 0; i < Keywordtype.Length; i++)
      {
      Model.Keyword_Model MModel = new jingjiaprj.Model.Keyword_Model();
      MModel.KeywordId = Keywordtype[i].keywordId.ToString();
      MModel.Keyword = Keywordtype[i].keyword;
      MModel.Price = Keywordtype[i].price.ToString();
      }
      }
      }
    class FolderList
    {
      Thread thread1 = new Thread(new ParameterizedThreadStart(ThreadPro.Results));
      thread1.Start(keyids);
      if (ThreadPro.StaticMList != null && ThreadPro.StaticMList.Count > 0)
      {
      for (int i = 0; i < ThreadPro.StaticMList.Count; i++)
      {
      //输出操作;
      }
      }
    }
      

  3.   

    另外你的第二段写成了class,根本不可能通过编译检查,根本不可能执行。好吧,假设你是写对了、写到一个方法中吧,那么它执行的时候,在 thread1.Start(keyids) 语句执行之后,这时候即使theapro.Results还没有被线程调度执行,也已经执行到随后的 
        if (ThreadPro.StaticMList != null && ThreadPro.StaticMList.Count > 0)
    代码了,这时候谁给ThreadPro.StaticMLis填充数据了?别忘了按照你的程序逻辑,theapro.Results完全(几乎都是)在这个if语句之后才执行的。