4

spawnUri()を使用して新しい分離を開始するときに、コマンドライン引数をその新しい分離に渡すことは可能ですか?

例:コマンドライン:

dart.exe app.dart "Hello World"

app.dartで

#import("dart:isolate");
main() {
  var options = new Options();
  print(options.arguments);    // prints ["Hello World"]
  spawnUri("other.dart");
}

other.dartで

main() {
  var options = new Options();
  print(options.arguments);   // prints [] when spawned from app.dart.
                              // Is it possible to supply 
                              // Options from another isolate?
}

SendPortを介してother.dartにデータを渡すことはできますが、特定の用途は、recievePortコールバックで作成されていない別のdartアプリ(pub.dartやその他のコマンドラインアプリなど)を使用することです。

4

2 に答える 2

1

あなたの例は、現在の安定した SDK を使用してprint(options.arguments);other.dart呼び出しません。

でも

spanUri("other.dart");

Uri を生成します。では、パラメータ/値のペアをspawnUri("other.dart?param=value#orViaHash");見つけることができるかどうか試してみてください

print(options.executable);
print(options.script);
于 2012-07-24T09:20:47.507 に答える
1

私が知る限り、現時点では答えはノーです。オプションが main() で利用できないため、メッセージ パッシングを介してシミュレートするのは難しいでしょう。

ここには 2 つの優れた機能リクエストがあると思います。1 つは、spawn() にオプションを渡して、スクリプトがルート アイソレートまたはスポーンされたアイソレートから同じように実行できるようにすることです。

最初の機能を実装するために使用できるもう 1 つの機能は、main() が呼び出される前にライブラリによって処理されるメッセージを渡す方法です。これにより、main() が依存するオブジェクトを生成分離からのデータで初期化できます。

于 2012-07-24T20:01:09.787 に答える