如果我有课
public Class foo
{
public foo()
{
myclass = new myclass(param)
myclass.initiateState();
val = myclass.getValues();
}
}
Run Code Online (Sandbox Code Playgroud)
Class.initiateState() 是一个漫长的过程,它在我的GUI构造函数中运行,我想开始用一个线程运行,但是下一行转到同一个类来获取一些数据,但如果我在一个新线程中运行第一行,那么这会得到在完成之前执行.
我怎么解决这个问题?
Øyv*_*hen 11
做一个BackgroundWorker.
在DoWork事件方法内,添加myClass.initiateState()调用.在RunWorkerCompleted事件方法内部,调用myClass.getValues();
这将导致initiateState在后台线程上运行,并且当完成时将getValues在GUI线程上触发.
另请注意,在C#中,与Java相比,使用大写字母启动方法名称是正常的.所以方法应该有名称InitiateState和GetValues:)
| 归档时间: |
|
| 查看次数: |
104 次 |
| 最近记录: |