public class QueueCmd
{
       public QueueCmd() { 
       
       }
}
QueueCmd qcmd = new QueueCmd();什么情况下 qcmd =null;

解决方案 »

  1.   

    LZ什么意思??new出来的是类的一个实例,这个空是什么意思??new后就为它分配了空间》。。
    学习中
      

  2.   

    QueueCmd qcmd = null;
    //直接赋值null
      

  3.   

    QueueCmd qcmd = new QueueCmd();
    qcmd  是局部变量  也没付过值
    创建以后加入到一个全局的队列中 取出来时有时候为null
      

  4.   


       public class QueueCmd
        {
           /// <summary>
           /// 命令队列
           /// </summary>
           public QueueCmd() { 
           
           }
           public QueueCmd(Client cl ,string Message)
           {
               this.Client = cl;
               this.CommandMessage = Message;
           }
           public QueueCmd(string Message)
           {
               this.Client = new Client(null);
               this.CommandMessage = Message;
           }
           public QueueCmd(string[] array)
           {
               this.Client = new Client(null);
               this.CommandMessage = Utility.Append(array);
           }
           public QueueCmd(Client cl, string [] array)
           {
               this.Client = cl;
               this.CommandMessage = Utility.Append(array);
           }
            private Client _Client;        public Client Client
            {
                get { return _Client; }
                set { _Client = value; }
            }
            private string _CommandMessage;        public string CommandMessage
            {
                get { return _CommandMessage; }
                set { _CommandMessage = value; }
            }
        }、、、、、、、、
    取值 QueueCmd queueCmd = (QueueCmd)SessionHashtable.SendCmdQueue.Dequeue();
    加值 SessionHashtable.SendCmdQueue.Enqueue(new QueueCmd(clientSend, message));
      

  5.   

    public class QueueCmd
      {
      /// <summary>
      /// 命令队列
      /// </summary>
      public QueueCmd() {  
        
      }
      public QueueCmd(Client cl ,string Message)
      {
      this.Client = cl;
      this.CommandMessage = Message;
      }
      public QueueCmd(string Message)
      {
      this.Client = new Client(null);
      this.CommandMessage = Message;
      }
      public QueueCmd(string[] array)
      {
      this.Client = new Client(null);
      this.CommandMessage = Utility.Append(array);
      }
      public QueueCmd(Client cl, string [] array)
      {
      this.Client = cl;
      this.CommandMessage = Utility.Append(array);
      }
      private Client _Client;  public Client Client
      {
      get { return _Client; }
      set { _Client = value; }
      }
      private string _CommandMessage;  public string CommandMessage
      {
      get { return _CommandMessage; }
      set { _CommandMessage = value; }
      }
      }、、、、、、、、
    取值 QueueCmd queueCmd = (QueueCmd)SessionHashtable.SendCmdQueue.Dequeue();
    加值 SessionHashtable.SendCmdQueue.Enqueue(new QueueCmd(clientSend, message));
      

  6.   

    影响效率  while 里面 
    关键是null 怎么进去的
      

  7.   

    与多线程访问SessionHashtable有关系吗?
      

  8.   


    你没有添加进去那取值的时候就是null呀
      

  9.   


    有添加进去
    SessionHashtable.SendCmdQueue  队列为空 就不去值啦 已经判断了
      

  10.   

    小少没有添加进去
    SessionHashtable.SendCmdQueue 队列为空  就不去值啦 已经判断了
      

  11.   

    很简单,asp.net应用程序经常重启的。放到繁忙的服务器上,比你在本机测试时,这个情况出现的几率会大上万倍。许多人不重视这个,甚至不知道asp.net应用程序会在客户端浏览器访问访问的瞬间自动重启的。
      

  12.   

    CS 结构的 C# 的 能在说具体一点
      

  13.   

    QueueCmd qcmd = new QueueCmd();qcmd=null;这样是不是您要的呢?
      

  14.   

    取值 QueueCmd queueCmd = (QueueCmd)SessionHashtable.SendCmdQueue.Dequeue();很简单,调试一下,看看你这个全局队列里都是些什么?都是QueueCmd吗?在你强制转换之前。能保证类型安全吗?
      

  15.   

    只有一个地方 对其添加值SessionHashtable.SendCmdQueue.Enqueue(new QueueCmd(clientSend, message));类型能不安全码