形成组件我有叫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.对不起,我的英语
您是否试图删除'catch(System.Messaging.MessageQueueException){}'而不是默默吞下异常?可能是你的'MSMQMessage.ReceiveMessage'抛出异常,你忽略它在空的catch块 – 2013-04-04 15:08:56
不,它工作正常。那个尝试站在那里捕捉超时异常。 var message =(MSMQMessage)mq.Receive(TimeSpan.FromSeconds(1.0), MessageQueueTransactionType.Single).Body; – user2236515 2013-04-04 15:24:29
好吧,“无所事事”是什么意思?它没有被调用,或者它没有执行任何工作,所以没有明显的副作用?你能否至少试图帮助我们解决你的问题。 – 2013-04-04 15:39:25