Dart如何传递泛型函数以隔离

Dart如何传递泛型函数以隔离,dart,dart-isolates,Dart,Dart Isolates,有没有办法将泛型函数作为参数传递给spawn的隔离?我附加了一个简化版本的代码(不起作用),但有没有办法在没有动态的情况下存档?或者函数ToCall的类型是在运行时决定的,而不是在complietime决定的,所以不可能为一个隔离决定 import 'dart:isolate'; class TestClass { // ... } void main(List<String> args) { ReceivePort receivePort = ReceivePort()

有没有办法将泛型函数作为参数传递给spawn的隔离?我附加了一个简化版本的代码(不起作用),但有没有办法在没有动态的情况下存档?或者函数ToCall的类型是在运行时决定的,而不是在complietime决定的,所以不可能为一个隔离决定

import 'dart:isolate';

class TestClass {
  // ...
}

void main(List<String> args) {
  ReceivePort receivePort = ReceivePort();

  Isolate.spawn(functionToCall<TestClass>, receivePort.sendPort);
}

void functionToCall<T>(SendPort sendPort) {
  // ...
}
导入“省道:隔离”;
类TestClass{
// ...
}
void main(列表参数){
ReceivePort ReceivePort=ReceivePort();
隔离.spawn(函数调用,receivePort.sendPort);
}
void函数调用(发送端口发送端口){
// ...
}

关于泛型类型的所有内容都被称为编译的一部分,并且“具体化”以在运行时对相同的信息进行双重检查。

关于泛型类型的所有内容都被称为编译的一部分,并且“具体化”在运行时对相同的信息进行双重检查。

我认为这里的问题可能与隔离无关,但我不知道在Dart中有什么方法可以创建对泛型函数的函数引用

例如,您当然可以调用您的泛型函数:

functionToCall<TestClass>(myPort);
functionToCall(myPort);

但是我不知道如何为特定类型(TestClass)创建函数引用,它是一个函数引用,您也需要将其传递到spawn方法中,因此我认为这就是您在这里遇到的Dart中的限制。

我认为这里的问题可能与隔离无关,但我不知道在Dart中有什么方法可以创建对泛型函数的函数引用

例如,您当然可以调用您的泛型函数:

functionToCall<TestClass>(myPort);
functionToCall(myPort);

但是我不知道如何为特定类型(TestClass)创建对函数的引用,它也是一个需要传递到spawn方法的函数引用,所以我认为这就是您在这里运行的Dart中的限制。

好的,很好:)但是我如何才能将泛型函数传递给Isolate.spawn方法呢?我来自C++,在模板中没有问题,我在我的例子中使用了它,每个隔离可能需要一个API。如果您有更多的API,则生成更多的隔离体。:)好的,这很好:)但是我怎样才能将泛型函数传递给Isolate.spawn方法呢?我来自C++,在模板中没有问题,我在我的例子中使用了它,每个隔离可能需要一个API。如果您有更多的API,则生成更多的隔离体。:)