我的代码:
static Timer checkTask;
public override void AwakeFromNib()
{
base.AwakeFromNib ();
checkTask = new Timer(2000);
checkTask.Elapsed += new ElapsedEventHandler(updateEvent);
checkTask.Enabled = true;
count.StringValue = "initial"
}
private void updateEvent(object source, ElapsedEventArgs e){
String URLString = "http://example.com/stat/data.xml";
XmlTextReader reader = new XmlTextReader (URLString);
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Text:
count.StringValue = "updated";
Console.WriteLine ("This code was reached!");
break;
}
}
}
我使用了一些示例值来计算" count"帮助描述问题。 当我在" AwakeFromNib()"中执行以下操作时拨打:
count.StringValue = "initial";
字符串值已设置且一切正常。 但是如果我在" updateEvent()"中执行相同的操作,则字符串永远不会被设置并保持为" initial"。为什么会这样?
控制台写入每2秒显示一次。