2015-10-06 12 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

因为你的方法是私人的。您需要将其更改为公开才能使用。