新しいものを表示
orange さんがブースト

パフォーマンスじゃなくて,単に await できるロック開放待ち機能を持ってるからって話だと思います.

ハードウェアの都合で排他処理が多数発生する一方でスレッドプールな感じの処理があまり必要ないような場面であれば、昔ながらのThreadクラスとlock(Monitor)を使うべき?><
(そういう場面ではlockとSemaphoreSlimの性能差の影響がawaitでの最適な(?)スレッドプールの扱いによる性能向上よりも大きくなる可能性が高い?><)

awaitは処理の中でスレッドが変わっちゃう事がある(待つ時にスレッドを占有しない)ので、同一スレッドから呼び出すのが前提のlockは使えないっぽい><
なんでスレッドを占有しないかというと、(一般的に考えて)たぶんその方がだいたいの場面でパフォーマンスがいいから><
で、代わりにSemaphoreSlim が使える><
でも、SemaphoreSlimはlockと比べるとパフォーマンスよくない><

難しい><;

マルチスレッドで高速なC#を書くためのロック戦略 # - Qiita
qiita.com/tadokoro/items/28b36

orange さんがブースト

そういう場面では SemaphoreSlim を使うらしいよ

orange さんがブースト

await lock(lockobject)に相当する部分、最近作ってる特定のプロセスの音だけ録音するライブラリのデモアプリにも出てくるけど、スレッドつくって頭でMonitor.TryEnterをループで回すってしてる><

これ作るために試行錯誤してわかったけど、排他処理を複数同時にしなきゃいけないような場面でasync/awaitを使うと大混乱に陥るので、そういう時はasync/await使わないほうがいい!><;

await lock(lockobject)に相当する部分、最近作ってる特定のプロセスの音だけ録音するライブラリのデモアプリにも出てくるけど、スレッドつくって頭でMonitor.TryEnterをループで回すってしてる><

ていうかasync/awaitを使う方が圧倒的に性能がよくなる場面が圧倒的に多いと思うけど、(少なくともハードウェアの都合が出る場面では)わかりやすさとか排他処理は、昔ながらのThreadクラスを使って書く方が圧倒的に簡単では感><
ウェブアプリとか事務処理とか? は、もしかしたらasync/awaitの方が使いやすいのかもしれないけど><

await lockがあったらめちゃくちゃ便利そうだけど、オレンジはそれ以前にasync/awaitを自分のコードで率先して使ったこと無い><(使わなきゃ使えないライブラリの時だけ使う)
音系のアプリを作ること多いのでマルチスレッドじゃないと困る場面は多々発生するけど、全部Threadクラス使って自分で制御してる><

orange さんがブースト

C#で

```
await lock(someObj)
{
// ....
}
```
みたいに書けたらいいなぁ、と思ってたんだけどやっぱり似たようなことを考える人はいるようで

Async thread lock ("await lock") · Issue #983 · dotnet/csharplang · GitHub github.com/dotnet/csharplang/i

orange さんがブースト

いくら async / await があってもマルチスレッド前提のプログラムはむつかしいわやっぱり

全国のトラック運送業者 57%が赤字 業界団体が経営状況を分析 | NHK | 自動車 www3.nhk.or.jp/news/html/20240

それこそアメリカみたいに大手のトラック輸送会社が受注とかのマネージメント(というかブローカー)をやって、受発注もそこ経由って形式にすればいいのに><
アメリカはその仕組みがあるので、あんな広大な北米大陸でも空荷で走る距離を短く出来てるし、ついでにやる気がある人は気軽に独立出来る><
ETS2/ATSほぼそのまま><
(米加にはトラックをリースで借りれるリースオペレーターって形態があって、個人事業主や小さな会社つくって月単位でリース料金払ってトラック借りて大手と契約して仕事受けて、途中で飽きたら廃業してトラック返せる(完済まで続けたら自分のトラックになる))

10ボタンくらいついててゲーム連動のRGB LED(Razer Chromaとか)がついてるゲーミング親指トラボがあったらいいのに><
FPSは一部の変人(><含む)以外はマウスを好むだろうけど、箱庭シミュレーションゲームとかはトラボで操作できる人にはその方がやりやすいことが多いだろうし、そういう系統のゲームってだいたいショートカットが多すぎてキーボードにすべて同時に割当てできなかったりするじゃん?><

むしろホイールってズームするUIの時にまともな作りで反応よくないとストレスで死ぬ><(?)
Factorioみたいな見下ろし系のゲームとか、GoogleEarthとかの地理系のソフトウェアとか><

トラボ、M570二個持ってるけど、古い方がホイール死にかけててとてもつらい><;

古いものを表示
:realtek:

思考の /dev/null