- 1 名前:デフォルトの名無しさん mailto:sage [2023/03/26(日) 07:31:00.51 ID:2LMOL5Ty0.net]
- !extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512 次スレを立てる時は↑を3行冒頭に書くこと(1行分は消えて表示されない為、もう1行は予備) 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください。見かけたらNGしましょう。相手してしまったらあなたも荒らしです >>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part157 https://mevius.5ch.net/test/read.cgi/tech/1669349768/ ■関連スレ C#, C♯, C#相談室 Part97 https://mevius.5ch.net/test/read.cgi/tech/1671585518/ ■コードを貼る場合は↓を使いましょう。 https://ideone.com/ https://dotnetfiddle.net/ 初心者はまずVisual Studioを使いましょう。なおVisual Studioの使い方などに関しては各バージョンで違うので専用スレでお願いします www.visualstudio.com/downloads/ ■情報源 https://learn.microsoft.com/ja-jp/dotnet/standard/class-libraries https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/ https://learn.microsoft.com/en-us/dotnet/standard/class-libraries https://referencesource.microsoft.com/ https://source.dot.net/ ・Insider.NET > .NET TIPS - @IT https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html ・DOBON.NET .NET Tips https://dobon.net/vb/dotnet/index.html ++C++; // 未確認飛行 C https://ufcpp.net/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
- 481 名前:デフォルトの名無しさん (アウアウウー Sac3-16n5) mailto:sage [2023/05/10(水) 20:03:31.18 ID:PlKEk/pSa.net]
- リソースを占有できるのがそのスレッドだけではない場合
つまり今回と同様の場合だな 原因がセキュリティソフトかバックアップソフトか何かは全く関係ない 時間を置いて何度かリトライしてそれでもだめなら例外を投げる 基本中の基本だぞ?
- 482 名前:429 (ワッチョイ 9354-ouLR) mailto:sage [2023/05/10(水) 20:19:03.60 ID:QPN4FwhI0.net]
- 議論再燃させて申しわけありません。
消えます。
- 483 名前:デフォルトの名無しさん (ワッチョイ 4679-jUDw) mailto:sage [2023/05/10(水) 21:49:28.98 ID:KHK6MiQv0.net]
- みんな参加できるし
いい内容だと思う
- 484 名前:デフォルトの名無しさん (ワッチョイ 1610-tcUg) mailto:sage [2023/05/10(水) 22:26:34.42 ID:6aE3wdSe0.net]
- >>1
> 議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
- 485 名前:デフォルトの名無しさん (ワッチョイ ff2d-vOwS) mailto:sage [2023/05/10(水) 23:13:27.93 ID:qs6QvCEc0.net]
- >>475,476
今回の場合(>>429)は、ファイルを一旦解放するのが問題なんだから、>>458の方法で上手く行くでしょ
- 486 名前:デフォルトの名無しさん (ワッチョイ ff2d-vOwS) mailto:sage [2023/05/10(水) 23:27:09.51 ID:qs6QvCEc0.net]
- ファイル削除のことならリトライは必要だけど、今回のと関係ないね
- 487 名前:デフォルトの名無しさん (ワッチョイ 335f-Z7Ea) mailto:sage [2023/05/10(水) 23:39:29.79 ID:+U2L2taI0.net]
- てか、ファイル操作するのに、排他しなきゃだよな?
一度手放したら他のプロセスに横取りされちゃうだろ
- 488 名前:デフォルトの名無しさん (ワッチョイ 335f-LLT0) mailto:sage [2023/05/10(水) 23:54:07.74 ID:of34847N0.net]
- もう一度再現させた上でロックしているプロセスが本当にWindows Defenderだったのか確認しない限り不毛な議論では?
- 489 名前:デフォルトの名無しさん (ワッチョイ 4679-U4yn) mailto:sage [2023/05/11(木) 02:59:54.64 ID:YOUU3VFS0.net]
- っていうかどうしたいんだろ
コピー後のファイルを 誰かがつかんだままにすれば 似たようなエラーはいつでも 起こせるし起きちゃうじゃん それがこのアプリにとってレアケースでないなら他アプリがつかんだママのときの動作を仕様で定義するべきだと思う
- 490 名前:デフォルトの名無しさん (ワッチョイ ff2d-vOwS) mailto:sage [2023/05/11(木) 03:21:28.69 ID:rPH4vL1P0.net]
- >>484
>>429のソースを見るに、ファイルの最終書き込み時刻を保ったままコピーしたいんでしょうよ コピー先のファイル作成とタイムスタンプ操作を1回の排他モードオープン〜クローズの間にまとめてやれば 他のプロセスに割り込まれようが無いし、その後につかまれてもやること終わってるから問題無い
- 491 名前:デフォルトの名無しさん mailto:sage [2023/05/11(木) 08:30:37.64 ID:deoSAjL+a.net]
- >>481
今回のセキュリティーソフトわ切るやり方こそ対症療法だろw
- 492 名前:デフォルトの名無しさん mailto:sage [2023/05/11(木) 10:12:30.60 ID:NldGOlLod.net]
- >>458
これ知らなかったんだけど、実際に存在する? コード書いてもでてこないんだけど ちなみにGetLastWriteTime はあるようだ
- 493 名前:デフォルトの名無しさん mailto:sage [2023/05/11(木) 10:37:35.73 ID:rPH4vL1P0.net]
- >>487
.NET7で追加された .NET6以前はP/InvokeでWin32API使えば同等のことは出来るけど時刻の扱いが面倒臭いね
- 494 名前:デフォルトの名無しさん mailto:sage [2023/05/11(木) 10:44:53.88 ID:ihHVpLbGp.net]
- そもそもファイルのタイムスタンプを合わせる仕様が本当に必要なのか小一時間
- 495 名前:デフォルトの名無しさん mailto:sage [2023/05/11(木) 10:54:15.13 ID:NldGOlLod.net]
- >>488
thx >>489 他人の仕様にケチ付けちゃだめ
- 496 名前:デフォルトの名無しさん mailto:sage [2023/05/11(木) 11:24:35.10 ID:ihHVpLbGp.net]
- タイムスタンプなんて危ういものを何に使おうってんだ?
生成時刻が重要ならファイル名に組み合わせしまうとか 他の方法の方がよっぽど確実だぞ
- 497 名前:デフォルトの名無しさん mailto:sage [2023/05/11(木) 12:16:13.48 ID:RpUziWGf0.net]
- DateTime.ToFileTimeみたいな関数あったはずだからWin32利用したら案外簡単
- 498 名前:デフォルトの名無しさん mailto:sage [2023/05/11(木) 12:31:50.44 ID:NldGOlLod.net]
- コードも提供せずにこういうことやりたいと言ってるわけでもないし、
今回問題となっている部分についてだけで話すればいいんじゃないの 質問者が他のやり方ないですかみたいな質問ならまだしも 回答者が勝手に仕様かえて変な回答しないほうがいいと思うなぁ
- 499 名前:デフォルトの名無しさん mailto:sage [2023/05/11(木) 12:45:05.52 ID:OsVl9AaP0.net]
- 俺は基本更新時刻の新しい順で並べるからファイルやフォルダのコピーごときでファイルスタンプは変わって欲しくないな
- 500 名前:デフォルトの名無しさん [2023/05/11(木) 12:56:38.62 ID:CPAv1ED5M.net]
- コピー元のタイムスタンプを維持したいユースケースなんていくらでもあると思うんだけどな
cp -pのように最初からそういうオプションが用意されてないのが不思議なくらい
- 501 名前:デフォルトの名無しさん mailto:sage [2023/05/11(木) 13:00:19.05 ID:8tWYoMH60.net]
- >>491
お前の考えなど知らん コピー先のファイル名はそのままである必要があるんだよ
- 502 名前:デフォルトの名無しさん mailto:sage [2023/05/11(木) 13:03:05.25 ID:azf3P6SKM.net]
- あれ、File.Copy()でコピーすればファイルの更新時刻とかはコピー元ファイルのままだと思ってたんだけど、違うの?
わざわ
- 503 名前:エLastWriteTimeを転記する処理なんか不要じゃないかな []
- [ここ壊れてます]
- 504 名前:デフォルトの名無しさん mailto:sage [2023/05/11(木) 13:20:41.79 ID:YOUU3VFS0.net]
- 結局なんで死んでんだっけ?
スレッドセーフじゃないメソッド呼んでたから?
- 505 名前:デフォルトの名無しさん mailto:sage [2023/05/11(木) 13:22:58.00 ID:Kl8HQqiW0.net]
- FileStreamを開放したところでDefenderに掴まれてるから
- 506 名前:デフォルトの名無しさん [2023/05/11(木) 13:26:07.70 ID:IsUfqIsW0.net]
- >>470
ノートン先生が毎回俺がコンパイルしたexe没収しやがるのな
- 507 名前:デフォルトの名無しさん mailto:sage [2023/05/11(木) 13:28:13.33 ID:/kketneYM.net]
- gdriveの横槍でvsのビルド失敗しやがるからな
- 508 名前:デフォルトの名無しさん mailto:sage [2023/05/11(木) 14:04:15.95 ID:/lX/zRJGp.net]
- >>496
だからファイル作成時刻が重要ならタイムスタンプに頼る様な仕様は事故のもとだから仕様から考え直さないと後で泣くのはおまえさんとこだって話だw
- 509 名前:デフォルトの名無しさん [2023/05/11(木) 14:06:17.73 ID:IsUfqIsW0.net]
- ファイルの作成時刻が大事で、ファイル名も変えたくないなら
実データの内に時刻もっておいて逐次参照するしかないか
- 510 名前:デフォルトの名無しさん mailto:sage [2023/05/11(木) 14:15:18.91 ID:5HC1/c5B0.net]
- タイムスタンプをバージョン番号にするのが一時流行ったな
- 511 名前:デフォルトの名無しさん mailto:sage [2023/05/11(木) 14:18:46.36 ID:NldGOlLod.net]
- >>497
コード提供部分にはない仕様でコピー中の進捗管理もしたいからブロックコピーみたいな事したいんじゃないのと思ってるけどね
- 512 名前:デフォルトの名無しさん mailto:sage [2023/05/11(木) 16:32:36.54 ID:Kl8HQqiW0.net]
- ファイルコピーツールでタイムスタンプ類もそのままって普通のことでは?
- 513 名前:デフォルトの名無しさん mailto:sage [2023/05/11(木) 16:59:27.45 ID:OsVl9AaP0.net]
- そうだよ
その当然のことがC#だとなぜか上手くいかないねってマヌケな話を続けてるのよ
- 514 名前:デフォルトの名無しさん (ワッチョイ b7e5-tcUg) mailto:sage [2023/05/11(木) 17:30:13.71 ID:Kl8HQqiW0.net]
- 違うよ、Defenderに割り込まれて失敗してただけなのに、C#が悪いとか実装だよりがうんたらとか明後日の話してるだけ
あとなぜかタイムスタンプ同期を敵視するおかしな輩
- 515 名前:デフォルトの名無しさん (ササクッテロル Spc7-Z7Ea) mailto:sage [2023/05/11(木) 17:43:23.58 ID:rQf2HOBdp.net]
- タイムスタンプって言えば、マイナンバーの他人データ事件
- 516 名前:デフォルトの名無しさん (アウアウエー Saaa-tcUg) [2023/05/11(木) 20:37:45.66 ID:WmrOv4hCa.net]
- asp.net 7.0/razorでTest.razorファイルを作って中身を
@page "/test/{text}" <h1>Hello, world!</h1> とすると、localhost/test/aaaaaaaは期待通りTest.razorにアクセスするんだけど localhost/test/ にアクセスしようとするとエラーページ(app.razorの<NotFound>)に飛んでしまいます エラーページに飛ばずにTest.razorに導くにはどうしたらいいのでし
- 517 名前:デフォルトの名無しさん (アウアウエー Saaa-tcUg) mailto:sage [2023/05/11(木) 20:50:19.55 ID:WmrOv4hCa.net]
- 自決。重複指定できるんだね
@page "/test/{text}" @page "/test/"
- 518 名前:デフォルトの名無しさん (ワッチョイ 4679-jUDw) mailto:sage [2023/05/12(金) 05:08:25.71 ID:wvdezX0Z0.net]
- ループしつつ例外来たらリトライぐらいしかないんだな
ファイルアクセスって
- 519 名前:デフォルトの名無しさん (ワッチョイ 1610-tcUg) mailto:sage [2023/05/12(金) 06:06:11.81 ID:knxa7qRm0.net]
- 絶対に他のプロセスがアクセスすることが無いファイルでもなきゃそうだろうね
- 520 名前:デフォルトの名無しさん mailto:sage [2023/05/12(金) 10:06:17.76 ID:6p7rgQrNp.net]
- 一度握ったら離さない様にすれば良いだけ
まあ、握るまで待つ事はあるだろうけどさ
- 521 名前:デフォルトの名無しさん mailto:sage [2023/05/12(金) 10:09:45.59 ID:6p7rgQrNp.net]
- ファイルロックくらいしろって事でFA
- 522 名前:デフォルトの名無しさん (ワッチョイ 5eda-xrk/) mailto:sage [2023/05/12(金) 20:52:48.39 ID:QyvjIFa10.net]
- タイムリーな話題
Microsoft Defender がファイルコピー速度を大幅に低下させるというテスト結果 https://security.srad.jp/story/23/05/11/212256/
- 523 名前:デフォルトの名無しさん (ワッチョイ cfa7-55dJ) mailto:sage [2023/05/13(土) 11:11:48.89 ID:tW4K4KGI0.net]
- 当たり前の話じゃないの?
アンチウイルスって実行ファイルの中身チェックするのが仕事なんだし
- 524 名前:デフォルトの名無しさん (ワッチョイ cfbb-ScEU) mailto:sage [2023/05/13(土) 12:02:01.86 ID:7xfulSMu0.net]
- >>517
コピーされるファイルも実行ファイルの中皆の?
- 525 名前:デフォルトの名無しさん (ワッチョイ 137c-Zn+e) mailto:sage [2023/05/13(土) 12:58:27.54 ID:WLwqntQA0.net]
- 別にチェックするのは実行ファイルだけじゃ無い
基本的には全部 拡張子変えて実際は実行ファイルって場合も有る 特殊な方法で画像や音声ファイルに別ファイルを入れる事も出来る 普通に開いても画像や音が流れるけどやけにファイルサイズ大きい
- 526 名前:デフォルトの名無しさん (ワッチョイ 03e5-Phjm) mailto:sage [2023/05/13(土) 14:46:09.37 ID:mZrGEceU0.net]
- 除外指定されてないもの全部検査対象だよな
- 527 名前:デフォルトの名無しさん (ワッチョイ ffde-ZkZz) mailto:sage [2023/05/13(土) 15:08:50.76 ID:xlpBDV6S0.net]
- んでウィルスでもないものも消していってくれるし
- 528 名前:427 (ワッチョイ bfbd-Np+b) mailto:sage [2023/05/14(日) 08:52:03.33 ID:kc3awa8x0.net]
- >>428
非同期I/Oについて以前別件で調べていたページをブラウザで開いたまま放置してて、 そこを読んだら、 ・FileStreamは~Async()メソッドを呼ぶだけだと、同期メソッドをTask.Runしているイメージと同じ ・非同期IOにするには、FileStreamのコンストラクターでuseAsyncをtrueにする とあった。
- 529 名前:デフォルトの名無しさん (ワッチョイ 8f79-PTT8) mailto:sage [2023/05/14(日) 11:04:56.63 ID:8prSF4JO0.net]
- そもそもIOって物理的に非同期にできんのかな?
って疑問はある ファイル名(パス)を変更するとして それが既存と被らないことをチェックするためには HDD全部が排他対象になっちゃうと思うんだけど・・・? 世の中には頭のいい人がいるからな Windowsもうまいことなってるのかもしれん
- 530 名前:デフォルトの名無しさん (ワッチョイ 137c-Zn+e) mailto:sage [2023/05/14(日) 11:24:11.66 ID:C7+mn9jn0.net]
- アホすぎる
基本情報技術者試験からやり直せ
- 531 名前:デフォルトの名無しさん (アウグロ MMdf-PTT8) mailto:sage [2023/05/14(日) 11:25:33.88 ID:YHEEjM6QM.net]
- >>524
マジで?載ってる?
- 532 名前:デフォルトの名無しさん (ドコグロ MMe7-GJof) mailto:sage [2023/05/14(日) 11:30:50.36 ID:cZZGCVt9M.net]
- FileStreamの~Async()メソッドの話をしているのに
ファイル名を変更する話をし始める人
- 533 名前:デフォルトの名無しさん (ワッチョイ 8f79-LM5x) mailto:sage [2023/05/14(日) 13:29:51.43 ID:8prSF4JO0.net]
- >>526
あ、そっか やっぱりそこは どうにもならねえんだよな
- 534 名前:デフォルトの名無しさん (ワッチョイ 8f79-LM5x) mailto:sage [2023/05/14(日) 13:35:41.81 ID:8prSF4JO0.net]
- まずIOいじるときは
プロセスセーフである必要があって それをサポートするAPIはないと 次にスレッドセーフである必要も あってそこはAPIがあるのと プロセスセーフの仕組みに載せてしまってもよい みたいな?
- 535 名前:デフォルトの名無しさん (スップ Sd1f-ZkZz) mailto:sage [2023/05/14(日) 15:32:18.00 ID:cBUUr2ypd.net]
- 別に考えるのは悪いことじゃないけどここで書くような事か?
チラシにでもかけよ
- 536 名前:デフォルトの名無しさん (ワッチョイ cfa7-55dJ) mailto:sage [2023/05/14(日) 16:46:00.64 ID:AbKJzFQD0.net]
- >>523
出来るも何もむしろ必須レベル 正常なディスクであればファイルIOは即終わるが壊れかけとかだとめちゃくちゃ時間かかる事もある 要するに完了時間は不定だから多数に公開しようとしたらファイルIOはWin32のオーバーラップを利用した非同期化は必須 C#であれば手軽に使えるasync版もあったはずだが
- 537 名前:デフォルトの名無しさん (ワッチョイ 8f79-cPXU) mailto:sage [2023/05/14(日) 18:25:49.02 ID:8prSF4JO0.net]
- >>530
なんかごちゃごちゃうっせーけど OSとAPIに任せて勝手にやってくれるわけではないよね?
- 538 名前:デフォルトの名無しさん (ワッチョイ 1310-TD+p) mailto:sage [2023/05/14(日) 19:42:00.49 ID:LqBBoBzl0.net]
- やってくれてなかったらOSもプロセスもディスクアクセスのたびに死んでるわ
- 539 名前:デフォルトの名無しさん (ワッチョイ 8f79-cPXU) mailto:sage [2023/05/14(日) 21:25:59.89 ID:8prSF4JO0.net]
- >>532
だから死んでるじゃん エラー出して ハンドリングはしてないよね?
- 540 名前:デフォルトの名無しさん (オイコラミネオ MMc7-ZkZz) mailto:sage [2023/05/14(日) 21:34:27.06 ID:pb1Dbmn7M.net]
- スレ伸びてるなと思ったら荒れてたのか
スルーしたほうがいいのかな?答えたほうがいいのかな?
- 541 名前:デフォルトの名無しさん (ワッチョイ 1310-TD+p) mailto:sage [2023/05/14(日) 23:37:37.55 ID:LqBBoBzl0.net]
- ハンドリングしてるからエラー出せるんだろうに
- 542 名前:デフォルトの名無しさん (ワッチョイ a32d-QNcS) mailto:sage [2023/05/14(日) 23:52:11.86 ID:TlAvKTIL0.net]
- デバイスとファイルシステムの区別が付いてないし基本的な知識が欠けてる
相手にするだけ無駄かと スレチだし
- 543 名前:デフォルトの名無しさん (ワッチョイ ff2f-o00x) mailto:sage [2023/05/15(月) 01:10:46.89 ID:LL0MvYiW0.net]
- まあふらっとだしC#にかかわる範囲で答えてやれば良いとは思うが
そもそも>>523は非同期IOってどんなもんだと思ってるんだ
- 544 名前:デフォルトの名無しさん (ワッチョイ 8f79-PTT8) mailto:sage [2023/05/15(月) 03:01:17.91 ID:MbkFonvu0.net]
- >>535
プロセスセーフにはならないってことだよね
- 545 名前:デフォルトの名無しさん (ワッチョイ 8f79-PTT8) mailto:sage [2023/05/15(月) 03:14:56.69 ID:MbkFonvu0.net]
- streamreaderwriterで死ぬってことはOSの機能じゃなくて
あくまでアプリ側がそう組んだからそう動くってことでおk?
- 546 名前:デフォルトの名無しさん (ワッチョイ cfa7-55dJ) mailto:sage [2023/05/15(月) 10:50:41.17 ID:pV2Ms8mh0.net]
- >>531
勝手にやってくれない? お前はDeviceIOControlでも利用して一々マニュアルでハードウェア制御してるのかよ 普通に全部勝手にやってくれるよ
- 547 名前:デフォルトの名無しさん (ワッチョイ ff80-wac6) mailto:sage [2023/05/15(月) 15:46:46.09 ID:rEJ0AvWA0.net]
- ReactiveExtensionsって現場では結構使われてるんですかね?
- 548 名前:デフォルトの名無しさん (ワッチョイ bfbd-Np+b) mailto:sage [2023/05/15(月) 23:44:43.69 ID:7dwhbD/A0.net]
- >>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のライブラリがどこまでやっているのかまだソースをほとんど調べていない。
- 549 名前:デフォルトの名無しさん [2023/05/16(火) 15:21:40.99 ID:x5Idn1prM.net]
- >>542
ReadFileEx()/WriteFileEx()に対して何かアドバンテージあるの?
- 550 名前:542 mailto:sage [2023/05/16(火) 23:17:52.90 ID:ArIN9ivM0.net]
- >>543
ReadFileEx()/WriteFileEx()のlpCompletionRoutineを使ったことはないけど、 LPOVERLAPPED_COMPLETION_ROUTINEのページに、 システムが完了ルーチンを呼び出すたびに、アプリケーションのスタックの一部が使用されます。 完了ルーチンが追加の非同期 I/O とアラート可能な待機を行うと、スタックが大きくなる可能性があります。 とあるから、完了ルーチンでさらに非同期I/Oを繰り返すと、スタックがあふれる恐れがあるんじゃないかなあ?
- 551 名前:デフォルトの名無しさん [2023/05/17(水) 00:05:39.06 ID:UJN2K8xqM.net]
- >>544
なるほど .NETのFileStreamもReadFile()やWriteFile()を使ってるのはそれが理由かも
- 552 名前:デフォルトの名無しさん (ワッチョイ 835f-keH4) mailto:sage [2023/05/17(水) 02:11:11.09 ID:BW67Dsb50.net]
- ファイルIO飽きたぁ
- 553 名前:デフォルトの名無しさん (ワッチョイ cfa7-55dJ) mailto:sage [2023/05/17(水) 09:38:13.97 ID:J+vPZ/2W0.net]
- >>545
いや完了ルーチン内で更に完了ルーチン呼び出しするなんて実装メリット無さ過ぎて普通しないからそれが理由ではない 単純に最も効率的な非同期IOはスレッドプールを利用した完了ポートだからだよ C#のasync awaitも完了ポートベース、nodejsもWindows版では完了ポートベース
- 554 名前:デフォルトの名無しさん (ワッチョイ 8f79-cPXU) mailto:sage [2023/05/17(水) 09:41:37.77 ID:x4D/IoKq0.net]
- >>546
どうした? 実はこれまで組んだファイル周りの実装がまずいことに気が付いたのか? プロセスセーフまで保証しろって言われたら正直俺もやってねえ っていうかもっかいやってくれればええやんってポリシー だったけどこのスレ見たやつが指摘してきた(笑) 面倒くせえw
- 555 名前:デフォルトの名無しさん (ワッチョイ cfa7-55dJ) mailto:sage [2023/05/17(水) 09:47:10.85 ID:J+vPZ/2W0.net]
- プロセスセーフってなんだ?
一つのファイルを複数プロセスで扱う場合においても別に難しい事はないけどな 排他モード指定したら良いだけなんだから
- 556 名前:デフォルトの名無しさん (ササクッテロ Sp87-eWQc) mailto:sage [2023/05/17(水) 09:52:57.56 ID:BC9U1gYmp.net]
- >>549
一度に完了しないでチマチマ複数回アクセスする類いだろ
- 557 名前:デフォルトの名無しさん (ワッチョイ 8f79-cPXU) mailto:sage [2023/05/17(水) 09:56:54.00 ID:x4D/IoKq0.net]
- >>549
いや、他のやつにアクセスされてると死ぬねん その時いつまで待てばええのか仕様がないねん タイムアウト付けるとじゃあその時できんかった処理をいつやるのか仕様を考えろって言われて辛いねん さらにそれが終わる前に他の処理が進んでしまってもまずいときあんねん こんなレアケース相手にしとうなかったねん
- 558 名前:デフォルトの名無しさん (ワッチョイ cfa7-55dJ) mailto:sage [2023/05/17(水) 10:04:34.84 ID:J+vPZ/2W0.net]
- >>551
それファイルIOの問題ではないな 非同期プログラミング全般の問題
- 559 名前:デフォルトの名無しさん (ササクッテロ Sp87-eWQc) mailto:sage [2023/05/17(水) 10:04:36.01 ID:BC9U1gYmp.net]
- まあ、昨今のマイナンバー絡みの誤配信あるし
つまらないレアケースを突いて来る奴増えたよな
- 560 名前:デフォルトの名無しさん (ワッチョイ 8f79-cPXU) mailto:sage [2023/05/17(水) 10:07:50.36 ID:x4D/IoKq0.net]
- いい手を考えた
それってこの間作ったやつも 同じですよね? 解決しているのであれば 対策方法を教えてほしいです って比較的暇そうな プロジェクトも誘爆させてみる
- 561 名前:デフォルトの名無しさん (ワッチョイ 13e5-zI38) mailto:sage [2023/05/17(水) 10:20:18.08 ID:r4L2F7830.net]
- 元々はファイルクローズ直後に約10%程度日付の書き換えに失敗するという質問で
原因はDefenderと結論付けて解決している 対策はリトライ、検索除外、ファイルを閉じる前に日付を書き換えるなどが上がっている なお非同期書き込みは関係ない
- 562 名前:デフォルトの名無しさん (ワッチョイ ff2f-3DBk) mailto:sage [2023/05/17(水) 10:26:42.10 ID:GG5VHMy50.net]
- >>551
レアケースでもなんでもなくて、当然設計段階で考慮しとくべき話 コーディング以前の問題 >>553 レアケースでも、それが発生する可能性がある以上、発生したらどうするか考えとかないとダメ エラーで落とすとかどうもしないとかも含めてな つかマイナンバーのやつは、レアケースというほどレアな条件が重なってるとは思えん たんなる設計不良とテスト不足だろ
- 563 名前:デフォルトの名無しさん (ササクッテロ Sp87-eWQc) mailto:sage [2023/05/17(水) 10:27:49.23 ID:BC9U1gYmp.net]
- >>555
Defenderが変化のあったファイルを即握るから一度手放したら持って行かれるってのが原因だよ? この場合Defenderは一例に過ぎない、他に同じ様なプロセスが走ってたら同じ事
- 564 名前:デフォルトの名無しさん (ラクッペペ MM7f-zI38) mailto:sage [2023/05/17(水) 10:33:05.14 ID:ayW9U2wIM.net]
- >>557
そう書いてるけど何か? 非同期書き込み関係ある?
- 565 名前:デフォルトの名無しさん (スップ Sd1f-ZkZz) mailto:sage [2023/05/17(水) 10:38:32.93 ID:JdW1FdHOd.net]
- >つまらないレアケースを突いて来る奴増えたよな
つまるつまらない関係なく安全なシステム構築が原則じゃねーの こんなこと言う奴が実装してると思うと怖いな
- 566 名前:デフォルトの名無しさん (ササクッテロ Sp87-eWQc) mailto:sage [2023/05/17(水) 10:39:10.69 ID:vxhNqJEJp.net]
- >>558
だから原因はDefenderじゃ無いだろw 対策でDefender切るなw
- 567 名前:デフォルトの名無しさん (オイコラミネオ MMc7-ZkZz) mailto:sage [2023/05/17(水) 12:01:27.36 ID:F24a8wLtM.net]
- 主張がおかしい
少なくとも例外=死ではないわな いくら他言語知っててwin32api知ってても例外回りというかそこら辺の理解が出来ずに対応が出来ないから初心者なんだろう ご愁傷様
- 568 名前:デフォルトの名無しさん (アウグロ MMdf-PTT8) mailto:sage [2023/05/17(水) 12:26:38.86 ID:gUH2EQh+M.net]
- でもこれって排他で掴んじゃうテキストエディタでファイル開いたまま放置されたとかなったら回避不能だよね
新しいファイルを作っちゃうって手も残ってるけど 正しいソフトウェアのあるべき姿って言われても困るわけだが? まあ、新しいファイルを作っちゃっていいなら作っちゃうが・・・? 読んでくるとき常に最新読むってすれば簡単だし
- 569 名前:デフォルトの名無しさん (オイコラミネオ MMc7-ZkZz) mailto:sage [2023/05/17(水) 12:39:44.91 ID:F24a8wLtM.net]
- 普通はメッセージを出すだろ?アプリ作ったことがないのか?
- 570 名前:デフォルトの名無しさん (アウグロ MMdf-PTT8) mailto:sage [2023/05/17(水) 12:48:19.60 ID:gUH2EQh+M.net]
- >>563
まあ、ログにも通知にも残すけど 定期処理とかだと 夜中中出しっぱだったので一切他の処理やらんかったぜもない話で
- 571 名前:デフォルトの名無しさん (オイコラミネオ MMc7-ZkZz) mailto:sage [2023/05/17(水) 12:55:33.17 ID:F24a8wLtM.net]
- 責務以外のことまで考慮する必要はない
書き込みしようとしたらHDDが容量不足だったは普通はそこまで考慮したソフトは書かない 一般的なリトライの範囲かせいぜいメッセージ出して人間が対応する 録画ソフトなどで事前に想定された範囲内で必要となるなら用意する 一般的なライブラリの範疇の話じゃない難癖レベル
- 572 名前:デフォルトの名無しさん (ワッチョイ 03e5-Phjm) mailto:sage [2023/05/17(水) 12:58:10.45 ID:HpY9MMf50.net]
- 排他で掴んじゃうエディタで開いたままにする関係者が悪いのであってやるなというだけの話
人が排他で開いたままにしちゃうかも、まで考慮することじゃない
- 573 名前:デフォルトの名無しさん (ワッチョイ ff79-Phjm) mailto:sage [2023/05/17(水) 13:09:21.57 ID:0e0u0fXr0.net]
- オートリトライでFDDを延々とカッコンカッコン鳴らしてやるぜ
- 574 名前:デフォルトの名無しさん mailto:sage [2023/05/17(水) 13:22:55.46 ID:c+t3TSTMp.net]
- >>567
FDDだとファイル一杯になった処理は必ず必要だよな あんな容量の小さなメディアだしな
- 575 名前:デフォルトの名無しさん mailto:sage [2023/05/17(水) 14:21:29.85 ID:JdW1FdHOd.net]
- >>562
当初の質問の流れだと①ファイル出力②タイムスタンプ変更を連続してるわけだから言ってる話(①のファイルをエディタなどの人為的操作でつかまれる)はおかしくない? 少なくともやりたかったことがどこかにあるファイルを別の場所にコピーする、ファイルのタイムスタンプは同じにするなら ①いったん別名でファイル出力 ②タイムスタンプ変更 ※リトライ含む ③正しいファイル名に変更 ※リトライ含む ぐらいがいいんじゃないかと思うけどね③まで正常終了したらOK
- 576 名前:デフォルトの名無しさん mailto:sage [2023/05/17(水) 14:23:16.58 ID:/6qavqYtp.net]
- >>569
連続してる様に見えるけど、CPUから見たら隙間だらけだからなぁw
- 577 名前:デフォルトの名無しさん [2023/05/17(水) 21:24:44.21 ID:WYa1maRz0.net]
- FDDってプレーンテキストくらいしか保存できないよね?
- 578 名前:デフォルトの名無しさん mailto:sage [2023/05/17(水) 21:52:19.55 ID:6s1sKbMg0.net]
- 2HDのFDにDOSと一太郎とATOKは入ったぞ
ちなみに媒体をFD、ドライブ装置をFDDというのだぞ
- 579 名前:デフォルトの名無しさん mailto:sage [2023/05/17(水) 22:00:37.91 ID:nVMR4RZGd.net]
- 知識としてしか知らないと>>571みたいな認識になってしまうのか
- 580 名前:デフォルトの名無しさん mailto:sage [2023/05/17(水) 22:55:44.00 ID:lFYANmkBM.net]
- Aドライブでアプリケーションソフト起動してBドライブはFEPの辞書ファイル入れて使うのが一般的だった気がする
- 581 名前:デフォルトの名無しさん [2023/05/18(木) 00:09:06.95 ID:PrSBwdky0.net]
- ハードディスクがCドライブから始まってるのはその名残りだよな
|

|