纽布在这里。
我正在从Silverlight页面的代码隐藏中实例化下面的类。
我试图理解为什么旋转的线程(loadoperation和worker)在完成的事件触发时成功引发类上的Selected事件,但是方法调用上的Select事件(在本例中为constructer)本身总是空的,因此不能?
有没有办法在方法调用本身上引发事件?
谢谢!
public EventTest()
{
if (1 != 1) //for test purposes
{
IPWorxDomainContext ctx = new IPWorxDomainContext();
loadOperation = ctx.Load(ctx.GetTradeMarkRegistryListingsQuery());
loadOperation.Completed += new EventHandler(loadOperation_Completed);
}
else
{
if (Selected != null) //always null
{
Selected(null, new EventArgs());
}
worker = new BackgroundWorker();
worker.DoWork += new DoWorkEventHandler(worker_DoWork);
worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
worker.RunWorkerAsync();
}
}
答案 0 :(得分:1)
如果您检查调用EventTest
的代码,您会发现在调用后正在分配Selected
个事件。因此,在EventTest
期间,事件为空。完成的事件在EventTest
完成并且已分配SelectedEvent
后发生。