08/05/25 23:59:22 vQVRM4Hf
俺の考えなしな書き込みのせいで、
タスクとコルーチンが対立項として扱われてる感じで、なんかゴメン
今までの流れから自分がどっちに行きたいのか整理してみると、こんな感じ
・タスク(あるいはオブジェクト指向による代替タスク)は有用だ。それはもちろん
・ただし、イベントドリブン主体であることには欠点もある。>>130のような負担ね
・コルーチンを併用すればそれを補えるかも知れない
例えばもし次のような実装が手元にあって、簡単にイベントドリブンとコルーチンを
使い分けられるなら、早く仕事がこなせる方をケースバイケースで選びたいよね
class Task {
public:
//サブクラスでonFrameTimer()をインプリメントすると毎フレームコールバック処理が行えます
virtual void onFrameTimer() {}
//サブクラスでcoroMain()をインプリメントすると関数がコルーチンとして起動されます
//yield()でメインルーチンへ処理が戻り、次フレームで再開(resume)、を繰り返します
virtual void coroMain() {}
}
実際にこんなC++実装が手元にあれば、みんな使う?
>>151氏あたりは既に使ってそうだけど、俺は使わない、もしくは迷うと思う。
実行コンテキスト切り替えコードは大抵アセンブリで速いけど移植性がないし、
他人に引き継ぎしずらいし(普及してないから)、ノウハウが無ければケアレスミスで簡単にスタックあふれるし。
だけどオールドスタイルのタスクもとてもストレスがたまるんだ
じゃあどうしたい、どうしたらいい、って話を、俺と同じように
現状のタスクに(意識的、または無意識的に)ストレス感じてる人に聞いてみたかったんだ