计算方法中的 Flutter 更新进度

Flutter update progress in compute method

我必须将许多图像保存到设备才能制作视频。
由于保存多张图片需要很多时间和资源,所以我使用计算来保存图像。

我想显示保存图像的进度,以便用户可以注意到视频还剩多少时间。
但是,在计算中调用 progressDialog.update(progress: progress) 会导致这样的错误

[ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: Invalid argument(s): Illegal argument in isolate message : (object is a closure - Function _handleBuildScheduled@587399801:.)

如何显示计算方法的进度?

progressDialog.update(progress: 50.0)   add Double Value Here it will work 

您的进度值不是两倍,所以您收到此错误

感谢pskink,我找到了解决方案。
首先,创建 RecceivePort 并将 receivePort.sendPort 传递给计算方法。

ReceivePort receivePort;

myComputeFunction(args) {
    Int someParameter = args[0]
    String otherParameter = args[1]
    SendPort port = args[2]

    //if you want to send some message
    port.send("your message here(passing double was ok)")
}


callingComputeFunction() {
    await compute(myComputeFunction, [1, "string", receivePort.sendPort]);
}

在您致电 compute 之前,请不要忘记 receivePort.listen()

receivePort.listen((dynamic message) {
      //do whatever you want to do with message!
    });