並列プログラミング、かつ、任意のタイミングでも処理を開始できて、待つ事も出来て、待つのをあきらめる事もできて、かつ(普通の環境だと無理があるけど)、結果の状態に(処理後の状態)書き換わる処理は明示的にのみ行われ十分にとても短い時間で出来て、書き換える前は書き換わる前の値を返す事もできる
みたいなのをVerilog HDLのノンブロッキング代入文を見ててなんかこう・・・><
https://mstdn.nere9.help/@orange_in_space/101372465027238430
これの実験コード、かなり酷いけど一応書いたのでせっかくなのでpaiza ioに><;
C#で439行のコード書いたよ!ブラウザ上で実行できるよ! https://paiza.io/projects/F0NiGRwETVCfnDvllvuFEA
これ、目的を考えると
fuga = hoge <= false;
って書かれてしまったらhogeの中身が破棄されない(hogeもfugaも同じハードウェアリソース等を参照する事になるかも?)ので危険かも><;
演算子の変わりに型で明示的な型変換したやつを暗黙の型変換でどうにかする手も?><;
hoge=true;//普通に代入
hoge=(NonBlockingRightSide)true;//ノンブロッキング代入もどき
とか?><;
Taskと微妙に違う点は、書き換える処理を非同期に書いて(、あるタイミングで同期的に状態を変える)のも、同期的に普通に代入も、どっちも出来るものを少しシンプルに記述できる事くらい?><;