C#の新機能を使用してNPCスクリプトを実装しようとしていawait
ます。これが私の概念実証です。
あなたはこのNPC.cs
スニペットを見ることができます:
public async void Run(INPC npc)
{
npc.Say("Hello!");
await npc.WaitForOk();
npc.Say("This is an example of some weird crap.");
await npc.WaitForOk();
npc.Say("Bye.");
await npc.WaitForOk();
}
実際の例では、スクリプトはIronPythonのようなスクリプト言語で実装されます。async
将来的には/キーワードをサポートする可能性がありますがawait
、呼び出しごとに/キーワードをサポートする必要があるのは、非常に面倒で面倒です。
別のメソッドを非同期にしてawaitを実行し、スクリプトでそれを呼び出すようにしましたが、async
/のawait
動作方法により、スクリプトメソッド(Run
)は一時停止/ブロックせずに続行します。
await
コルーチンのような機能を維持しながら、スクリプトメソッドを非同期にしたり、各呼び出しの前で使用したりする必要を回避する方法はありますか?
また、スレッド効率を維持しながらasync
/を使用するよりも、これに対してすでに利用可能なより良い解決策がある場合は、それを強調してください。await
ありがとう!