[過去ログ]
ふらっと C#,C♯,C#(初心者用) Part158 (1002レス)
ふらっと C#,C♯,C#(初心者用) Part158 http://mevius.5ch.net/test/read.cgi/tech/1679783460/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
530: デフォルトの名無しさん (ワッチョイ cfa7-55dJ) [sage] 2023/05/14(日) 16:46:00.64 ID:AbKJzFQD0 >>523 出来るも何もむしろ必須レベル 正常なディスクであればファイルIOは即終わるが壊れかけとかだとめちゃくちゃ時間かかる事もある 要するに完了時間は不定だから多数に公開しようとしたらファイルIOはWin32のオーバーラップを利用した非同期化は必須 C#であれば手軽に使えるasync版もあったはずだが http://mevius.5ch.net/test/read.cgi/tech/1679783460/530
531: デフォルトの名無しさん (ワッチョイ 8f79-cPXU) [sage] 2023/05/14(日) 18:25:49.02 ID:8prSF4JO0 >>530 なんかごちゃごちゃうっせーけど OSとAPIに任せて勝手にやってくれるわけではないよね? http://mevius.5ch.net/test/read.cgi/tech/1679783460/531
542: デフォルトの名無しさん (ワッチョイ bfbd-Np+b) [sage] 2023/05/15(月) 23:44:43.69 ID:7dwhbD/A0 >>530 Win32APIで最近非同期のコードを書いているけど、 ReadFile()/WriteFile()が途中までで返ってくることも踏まえてループ処理にするとして、 1) ReadFile()/WriteFile()で同期(OVERLAPPED構造体なし) →同期 2) ReadFile()/WriteFile()で非同期(OVERLAPPED構造体あり)、WaitFor~、GetOverlappedResult() →スレッドを明示的に手放す? 3) 1)をCreateThreadpoolWork() →スレッドプールのスレッド内で同期処理 4) 2)をCreateThreadpoolWork() →スレッドプールのスレッドで動作するが、途中でスレッドを明示的に手放す? IOCPならその間に他のスレッドが動きそうだが、スレッドプールAPIでもそうなるか知らない。 5) CreateThreadpoolIo()、ReadFile()/WriteFile()で非同期(OVERLAPPED構造体あり)、 IoCompletionCallbackで続きのReadFile()/WriteFile()を行う →これが一番効率的だと思う。 最近5)で書いてる。めんどくさい。うまく動かなかった時に調査のために同期処理にしてみることができない。 C#のasync/awaitは神。 .NET Framework/.NETのライブラリがどこまでやっているのかまだソースをほとんど調べていない。 http://mevius.5ch.net/test/read.cgi/tech/1679783460/542
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.045s