如何从ElapsedEvent方法返回字符串?
本文关键字:返回 字符串 方法 ElapsedEvent | 更新日期: 2023-09-27 18:09:13
我有一个名为DeSerializeXML
的反序列化函数,它返回一个字符串。我从另一个类调用它,我需要它基于计时器运行所以我在ElapsedEvent
中为计时器
private void frm_MyForm_Load(object sender, EventArgs e)
{
System.Timers.Timer myTimer = new Timer(2000);
myTimer.Elapsed += new ElapsedEventHandler(ElapsedEvent);
myTimer.Enabled = true;
}
public static void ElapsedEvent(object source, ElapsedEventArgs e)
{
string x = OtherClass.DeSerializeXML();
}
我怎么能把字符串值从ElapsedEvent,所以我可以把它分配给MyForm窗体上的文本框?如果这是一个措辞不好的问题,我很抱歉,我会根据需要添加注释/更多代码。谢谢所有的
Using Control。调用方法
public void ElapsedEvent(object source, ElapsedEventArgs e)
{
string x = OtherClass.DeSerializeXML();
frm.Invoke((Action)(() => textBox.Text = x);
}
注意:从方法签名中删除static关键字
尝试将返回的字符串设置为文本框的Text
属性。
textBox1.Text = OtherClass.DeSerializeXML();
如果你得到任何复杂的关于非ui线程尝试使用Invoke
。这样的:
var txt = OtherClass.DeSerializeXML();
if (InvokeRequired)
{
//this is the Form
this.Invoke(new Action<string>(textBox1), new object[] {txt});
return;
}
textBox1.Text = txt;