2010-05-18 81 views
0

我正在尝试执行预定操作,比方说通过Web服务调用检查用户的信用并更新用户界面。如何从WPF的内部类访问父母的成员?

我已经试过quartz.net来实现调度bit.i创建一个内部类在我需要更新的窗口类。内部类有调用Web服务的方法,结果需要显示回来到用户界面。 这里是我做的一个例子。

public partial class Window2 : Window 
{ 
    private int i; 
    public Window2() 
    { 
     InitializeComponent(); 
    } 



    public class Myclass :IJob 
    { 
     public void Execute(JobExecutionContext context) 
     { 
     string result = doMyOperation(); 
     //i'll like to call parent label member of name lblNotif 
     //is something like parent.lblNotif.Content = result; 
     //possible? 
     } 

     public string doMyOperation() 
     { 
     //calling the wermethod to retreive user's balance 
     return result = service.GetUsersBalace(user); 
     } 

    } 
} 

那么石英钻头工作,这个职位是不是石英。这里是我的问题

问题1:如何访问Window2控件,如何实现标签lblNotif?
问题2:如果我对这个问题的看法是错误的,那么最好的做法是解决我的问题,应用程序需要做一个操作,让我们说每5分钟更新一次UI。
问题3:我起初试图使用背景工作,我觉得我不能做它的调度位,这是正确的或我错了。

感谢那些谁已经评论和遗憾,对于那些谁没有得到我的post.I的意思希望这将是一个有点clearer.Thanks阅读

+0

我为什么要降低分数? – 2010-05-18 16:02:22

+0

我要走出一条肢体,说可能来自以下: [1]您的线程问题?或使用Quartz?或为什么你得到一个例外?或全部三个? [2]您似乎在寻找能够为您执行任务的代码...从线程更新多个窗口并不需要Quartz。 [3]“但我在这里堆叠”的意思是什么?......一个小术语很酷,但人们仍然需要了解你。 [4]你的问题并不是关于试图编写代码的艺术或细节,需要基本例外的帮助不会飞。 只是观察没有违法。 – Rusty 2010-05-18 16:19:39

+0

@Rusty:[3]我想他的意思是“卡住”。我也得到更多的“外国”氛围,而不是“文盲”。 – Amadan 2010-05-18 16:40:16

回答

1

你可以使用这个目的便捷类的BackgroundWorker 。欲了解更多信息,请参阅this article

+0

感谢您的回复。我也看到了背景工作者,但是一次操作就不是这样吗?我需要什么是一个scheduler.unless我不知道Backgroudworker的调度器功能.. – 2010-05-18 16:01:06

0

要在单独的线程上定期执行操作,请使用System.Timers.Timer。它的Elapsed事件总是在新线程上运行。

相关问题