2015-10-06 47 views
2

出於某種原因,當我使用@ScheduledMethod時,我的方法不會被調用。不知道什麼是錯誤的,因爲我以前用過它,一切都很好。重現symphony @ScheduleMethod問題

下面是代碼:

import repast.simphony.engine.schedule.ScheduledMethod; 

public class WindGen { 

private double power; 

@ScheduledMethod(start = 1, interval = 1, priority = 2) 
private void generatePower() { 

    int t = SystemOperator.getT(); 

    power = 20 * Math.sin(Math.toRadians(t * 360/48) + 30); 

} 

public double getPower() { 
    return power; 
} 
} 

在此先感謝, 迪娜。

回答

0

我有@ScheduledMethod類似的問題:它根本沒有執行我的方法。

但是,我沒有得到它運行在一個不同的方式, 這可能找你調度方法如下:

ISchedule schedule = RunEnvironment.getInstance().getCurrentSchedule(); 
ScheduleParameters generate = ScheduleParameters.createRepeating(start = 1, interval = 1, priority = 2); 
schedule.schedule(generate , this ,"generatePower"); 

我建議你嘗試執行這個代碼片斷一次,在開始的時候和(也許)在同一個班級。

您可以在 Repast Simphony FAQ中找到有關排程的更多信息。

希望它有幫助,索爾

2

因爲你的方法是私人的。您需要將其更改爲公開才能使用。