在我的代码中,按下按钮后,调用方法,其中有三个函数的计算和导出到PDF文件的调用。其中一个函数将类的字段作为参数,通过移动应用程序中的滑块进行更改。问题是,由于计算和导出,按下按钮的动画滞后。此外,exe的CPU使用率上升了7% -15%。
该方法不返回任何东西,其工作结果只是PDF文件,所以我不需要等待它完成,而只需启动它并关心其他事件。
我想让这个方法并行或同时计算,这样它就不会减慢整个应用程序的速度,并且按下按钮的动画可以流畅地播放。
尝试次数
我尝试将函数类型改为Future并添加async,但没有帮助。
我也试过使用Isolate.run
,如果我只在里面放两个函数,它就可以工作,但是如果我添加第三个函数,它将类的字段作为参数,它就停止工作了。
下面是类的简化外观和在按下按钮后调用的方法。
class Pattern{
int scale = 10; //it's changed by slider
void exportImage() {
ImageBMP image = createImage(scale); //if I add this to Isolate it breakes
var dividedImage = divideImage(image);
createPDF(dividedImage);
}
}
1条答案
按热度按时间ff29svar1#
导入foundation.dart,其计算方法为:
然后在exportImage方法中使用compute在后台完成其工作。