2013-04-04 141 views
0

形成组件我有叫MSMQMessageThread方法,在Form1类包含C#访问从

public void ExecuteMessageOperations(MSMQMessage MSMQ) 
    { 
     switch (MSMQ.MesType) 
     { 
      case "01": { label1.Text = MSMQ.MesContent; MessageBox.Show(MSMQ.MesContent); button1.Text = MSMQ.MesContent; }; 
       break; 
      case "02": 
       { 
        dataGridView1.Columns.Add("Data", "Data"); 
        dataGridView1.Rows.Add(MSMQ.MesContent); 

       }; 
       break; 
      case "03": 
       { 
        string[] separated = MSMQ.MesContent.Split(new Char[] { ',' }); 
        try 
        { 
         Rectangle rect = new Rectangle(Convert.ToInt16(separated[0]), 
          Convert.ToInt16(separated[1]), Convert.ToInt16(separated[2]), 
          Convert.ToInt16(separated[2])); 
         SolidBrush brush = new SolidBrush(XMLConfigs.GetBrushColor()); 
         Graphics Grph = pictureBox1.CreateGraphics(); 
         Grph.FillEllipse(brush, rect); 

        } 
        catch (Exception) 
        { 
         MessageBox.Show("Wrong parameters"); 
        }; 
       }; 
       break; 
     } 

和类,它包含了Form1的。这个类有方法

public void PerformOperations() 
    { 
     while (true) 
     { 
      try 
      { 
       Form1 f = new Form1(); 
       f.ExecuteMessageOperations(MSMQMessage.ReceiveMessage(@".\private$\TestQueue")); 
      } 
      catch (System.Messaging.MessageQueueException) { } 
     } 
    } 

代码正常编译,但方法ExecuteMessageOperations无能为力。错误在哪里,以及如何访问方法ExecuteMessageOperations中的Form1组件? P.S.对不起,我的英语

+6

您是否试图删除'catch(System.Messaging.MessageQueueException){}'而不是默默吞下异常?可能是你的'MSMQMessage.ReceiveMessage'抛出异常,你忽略它在空的catch块 – 2013-04-04 15:08:56

+0

不,它工作正常。那个尝试站在那里捕捉超时异常。 var message =(MSMQMessage)mq.Receive(TimeSpan.FromSeconds(1.0), MessageQueueTransactionType.Single).Body; – user2236515 2013-04-04 15:24:29

+0

好吧,“无所事事”是什么意思?它没有被调用,或者它没有执行任何工作,所以没有明显的副作用?你能否至少试图帮助我们解决你的问题。 – 2013-04-04 15:39:25

回答

0

把一个断点放在你的switch语句和'step over'之间。让我们知道它是否实际上首先调用方法。

+0

是的,它是调用方法。 MessageBox.Show(MSMQ.MesContent); 这段代码是为了测试而编写的,它在每次消息到达时都在工作 – user2236515 2013-04-04 15:17:44