- プロジェクトの作成
- オブジェクトと変数のリファレンス
- プロジェクトの拡張
- チュートリアル
- グラフィックオブジェクト チュートリアル
タスクを破棄する
タスクはランタイムに破棄できます。破棄したタスクは実行できません。
Stop() メソッド
Stop()
メソッドNetLogic 親ノードが削除されると、各非同期タスクは自動的に終了します。ただし、次の例に示すように、
Stop()
メソッド内のタスクは Dispose()
メソッドを呼び出して破棄することをお勧めします。public override void Stop() { myTask.Dispose(); }
重要:
非同期タスクで
Dispose()
メソッドを呼び出すと、タスクによって実行されたコードが (タスクの状態の制御またはタスクの完了のために) 呼び出し元に制御を返すまでブロックされます。例
次の例は、非同期タスクの作成、実行、破棄を示しています。
public override void Start() { myTask = new PeriodicTask(IncrementVariable, 1000, LogicObject) myTask.Start(); } public override void Stop() { myTask.Dispose(); } private void IncrementVariable() { variable1.Value = variable1.Value + 1; } private PeriodicTask myTask;
この例には、次のものが含まれます。
- NetLogic に含まれる C# クラスでプライベートインスタンス変数 (private PeriodicTask myTask;) を定義します。ヒント: 作成されるタスクのタイプに応じて、この変数のクラスはPeriodicTask、DelayedTask、LongRunningTaskのいずれかである必要があります
- タスクが実行する必要があるメソッド (IncrementVariable()) を定義します。
- タスクを作成します。Start()メソッド内の NetLogic に含まれる C# クラスでは、プライベートインスタンス変数 (myTask) がクラス コンストラクター (PeriodicTask) を使用して初期化されます。ヒント: コンストラクターには、属するクラスに基づいてさまざまな引数が必要です。「非同期タスク」を参照してください。
- NetLogic がランタイムに初期化されるとすぐにタスクを実行します。NetLogic に含まれる C# クラスのStart()メソッド内では、Start()メソッドはタスク(myTask.Start()) で呼び出されます。
- Stop()メソッドを呼び出すことによって、Dispose()メソッド内のタスクを破棄します。
ご質問やご意見