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
380 名前:デフォルトの名無しさん (ワッチョイ 975f-VSqy) mailto:sage [2023/05/03(水) 13:41:01.73 ID:eaeSSGs50.net] 使われないモジュールを書いてしまうおじさんや、非機能要件を無視する(あるいは認識できない)おじさんも淘汰される
381 名前:デフォルトの名無しさん (ワッチョイ ffbb-zzYQ) mailto:sage [2023/05/03(水) 13:45:11.16 ID:RLCA5WWQ0.net] > セキュリティテスト依頼したり社内の品管のテストとシステム監査が入る こんなテストや監査が想定されてる中、ユニットテストが無駄だって思ってるってこと?
382 名前:デフォルトの名無しさん (ワッチョイ ffbb-zzYQ) mailto:sage [2023/05/03(水) 13:51:12.96 ID:RLCA5WWQ0.net] ちょっとまって! > 外部にセキュリティテスト依頼したり社内の品管のテストとシステム監査が入る こんなプロジェクトで「動けばいい」ってスタンスで仕事してんのか? マジか
383 名前:デフォルトの名無しさん (ワッチョイ 777c-KiN+) mailto:sage [2023/05/03(水) 13:51:42.78 ID:iydNsBEo0.net] >>377 俺が言った訳じゃ無いけどなw まあ俺は単体テストはアリだと思うぞ 単体テストの結果でもって要は作業完了証明やろ 逆に言えば以降は俺の責任じゃ無いと言えるし仕様変更は別に金取れる
384 名前:デフォルトの名無しさん (ワッチョイ 777c-KiN+) mailto:sage [2023/05/03(水) 13:53:02.57 ID:iydNsBEo0.net] >>378 そうだぞ だって製品の検査で調べるのはその動くかどうかじゃん 中のコードがどうとか技術がどうとか関係無いやん
385 名前:デフォルトの名無しさん (ワッチョイ ffbb-zzYQ) mailto:sage [2023/05/03(水) 13:55:01.32 ID:RLCA5WWQ0.net] すごいな。そのプロジェクト 俺の知ってる世界だと、そんなコード見せられたらレビュアーが怒り狂うわ
386 名前:デフォルトの名無しさん (ワッチョイ 777c-KiN+) mailto:sage [2023/05/03(水) 13:57:38.37 ID:iydNsBEo0.net] >>381 多分お前が普段使ってる様なアプリもそんなもん その神経質で無能なレビューアーが関係してるお前のシステムって世界でどんだけ売れてんのって話
387 名前:デフォルトの名無しさん (ワッチョイ 1707-rvTa) mailto:sage [2023/05/03(水) 13:59:04.86 ID:7KJ/CzIt0.net] 動けばいいとしつこく言ってるやつはただの無職だよ 無職の妄想の中ではそうなんだろうさ 現実には動くのは当然で最低限でしかないんだけどね
388 名前:デフォルトの名無しさん (ワッチョイ 777c-KiN+) mailto:sage [2023/05/03(水) 14:03:35.88 ID:iydNsBEo0.net] >>383 そうは言ってるけどじゃあそれ以上に何が必要か言えてないやん ちなみに話の流れは >>330 >>333 みたいなコードの内容から来てるんやで こういうコードが糞だろうが動けば良いって話だから脱線するなよ お前等っていつも前提間違ってるからなw
389 名前:デフォルトの名無しさん (ワッチョイ bfbc-o+T5) mailto:sage [2023/05/03(水) 14:06:31.39 ID:5+L69Iha0.net] まああんまり完璧なコードを書くと、その後の仕事がなくなるからな。
390 名前:デフォルトの名無しさん (ワッチョイ ffbb-zzYQ) mailto:sage [2023/05/03(水) 14:09:44.71 ID:RLCA5WWQ0.net] > 777c-KiN+ ついでに聞くけど、お前の中でシステム監査ってどんなもんなの?
391 名前:デフォルトの名無しさん (ワッチョイ 777c-KiN+) mailto:sage [2023/05/03(水) 14:15:23.93 ID:iydNsBEo0.net] >>386 すまん無能の質問の意味が分からん システム監査って経済産業省とかIPAに定義あるよね 普通はそれに準拠したものが一般的だと思うんだ つまり共通認識じゃないの? 無能の頭の中って俺俺監査があるん?
392 名前:デフォルトの名無しさん (ワッチョイ ffbb-zzYQ) mailto:sage [2023/05/03(水) 14:19:36.70 ID:RLCA5WWQ0.net] > だって製品の検査で調べるのはその動くかどうかじゃん こんなこと言ってるし、また俺の
393 名前:シラン世界があるのかと [] [ここ壊れてます]
394 名前:デフォルトの名無しさん (ワッチョイ 777c-KiN+) mailto:sage [2023/05/03(水) 14:26:32.08 ID:iydNsBEo0.net] >>388 アホw まさか動くかどうかが機能要件や非機能要件 セキュリティ要件満たしてないと思ってる? それこそ最低限満たした上で動く事だよね その上で中のコードが>>384 で言った様な糞コードかどうか関係無いよねって話だ ほら言った様に話の流れが分かって無い 理解してない 前提を間違ってる 無能だな
395 名前:デフォルトの名無しさん (ワッチョイ 9f4b-gncP) [2023/05/03(水) 14:26:49.46 ID:vL8FscsM0.net] GWだねぇ
396 名前:デフォルトの名無しさん (ワッチョイ ffbb-zzYQ) mailto:sage [2023/05/03(水) 14:30:01.23 ID:RLCA5WWQ0.net] >>389 > まさか動くかどうかが機能要件や非機能要件 セキュリティ要件満たしてないと思ってる? システム監査ってそういうことじゃないぞ お前の中のシステム監査ってどんなもんなん?
397 名前:デフォルトの名無しさん (ワッチョイ 777c-KiN+) mailto:sage [2023/05/03(水) 14:37:49.92 ID:iydNsBEo0.net] >>391 繰り返すアホ
398 名前:デフォルトの名無しさん (スッップ Sdbf-oJ27) [2023/05/03(水) 14:42:38.57 ID:s1pMNzuQd.net] >>391 お前が間違ってるんじゃ? 経済産業省のシステム監査基準だとセキュリティガイドライン等に準拠してるか云々って書いてあるしそういう事を監査するもんじゃないの?
399 名前:デフォルトの名無しさん (ワッチョイ ffbb-zzYQ) mailto:sage [2023/05/03(水) 14:48:38.92 ID:RLCA5WWQ0.net] 俺の知ってる世界だと、システム監査ってのは雑に言うとシステムを体制として担保する方法ができてるかを確認するもの で、「機能要件や非機能要件 セキュリティ要件」に関連した箇所でいうと、それらの要件が正しく永続的に保証できる証跡が残せるか?って観点で監査される つまり、 > だって製品の検査で調べるのはその動くかどうかじゃん ってことにはならんのよ だから、コーダーが「動けばいい」ってスタンスで仕事してたら、レビュアーが体制としてブチ切れるんだわ で、お前の中のシステム監査ってどんなもんなん?
400 名前:デフォルトの名無しさん (ワッチョイ 9f2f-g9Ql) mailto:sage [2023/05/03(水) 15:09:07.11 ID:fD0yPqm80.net] 動けばいいってのは なぜそう書かないほうが良いのか、ちゃんと理解して説明できないやつの言い訳 まあそう書くなって言ってる奴もちゃんと説明できてないんだがな
401 名前:デフォルトの名無しさん (ワッチョイ ff10-By2c) mailto:sage [2023/05/03(水) 15:19:09.40 ID:YldI9T9X0.net] >>390 GW終わって2ヵ月ちょい経つと今度は夏だねぇってなるんだよな
402 名前:デフォルトの名無しさん (ワッチョイ 1f3d-VWCj) mailto:sage [2023/05/03(水) 15:26:23.95 ID:49Yy066J0.net] ぼんやりとした質問ですが、 Form1にWebView2が合ったとして、Form2でお気に入りを作って、Form2からForm1の WebView2にナビゲートしたいんです。 やってみたんですが、Form1にあるはずのWebViewがForm2から出てこないんです。 調べてみたらキャスト?とかいうのが必要らしくて、キャストはちんぷんかんぷんです。 コード書いておくので誰かお助けを~ 後Form1のWebview2にアクセスしようとしたら保護がかかってしまいました。 ランタイムを噛ませたりとかよく分かりません。 こんな超初心者の俺ですが、助けてください。 private async Task InitializeAsync() { await webView21.EnsureCoreWebView2Async(null); } private async void Form1_Load(object sender, EventArgs e) { await InitializeAsync(); webView21.CoreWebView2.Navigate("https://web.biz-prog.net/"); }
403 名前:デフォルトの名無しさん (ワッチョイ 1f3d-VWCj) mailto:sage [2023/05/03(水) 15:26:47.58 ID:49Yy066J0.net] private void button1_Click_1(object sender, EventArgs e) { Form2 f2 = new Form2(this); // 自フォームへの参照を渡す f2.Show(); // サブ・フォームを表示 } ここからForm2 public partial class Form2 : Form { Form1 f1; private object webView21; public Form2(Form1 f) { f1 = f; InitializeComponent(); } 試して見たんですが、オートコンプリートに((Form1)).webview2が出てきません
404 名前:デフォルトの名無しさん (ワッチョイ ff10-By2c) mailto:sage [2023/05/03(水) 16:36:13.15 ID:YldI9T9X0.net] Form1に配置してるWebView2がprivateで宣言されてるからじゃないかね VS使ってるならデザイナーで選択してプロパティウィンドウのModifiersを確認して PrivateになってるならInternalかPublicにしたらいいよ
405 名前:デフォルトの名無しさん (ササクッテロリ Sp8b-Hgfr) mailto:sage [2023/05/03(水) 16:48:57.57 ID:rOyAnSv/p.net] プライベートのままアクセサ作れば良くね?
406 名前:デフォルトの名無しさん (ワッチョイ bf42-fitb) mailto:sage [2023/05/03(水) 17:56:30.72 ID:DnrzKFHb0.net] そもそも素人コーディングをやるやつがマトモなアプリ書けるとは思えん アプリの作り方を勉強した人ならマシなコード書くからな
407 名前:デフォルトの名無しさん (ワッチョイ 1f3d-VWCj) mailto:sage [2023/05/03(水) 19:51:19.18 ID:49Yy066J0.net] >>399-401 解決しました。ありがとうございます。
408 名前:デフォルトの名無しさん (ワッチョイ 777c-KiN+) mailto:sage [2023/05/03(水) 21:30:59.09 ID:iydNsBEo0.net] >>394 あのさちゃんと読んだ? お前は前提を勘違いしてるんだよ 動けば良いってそういう事じゃ無いんよ
409 名前:デフォルトの名無しさん (ワッチョイ 777c-KiN+) mailto:sage [2023/05/03(水) 21:35:17.93 ID:iydNsBEo0.net] >>394 もっと分かりやすい例を出そう 例えば同じ処理を100箇所コピペ出実装したとする 普通なら関数化してってやるわな こんな100箇所コピペした糞コードでもシステム監査や他のテストでは一切問題にならない 動けば良いんだよ
410 名前:デフォルトの名無しさん (ワッチョイ 1707-rvTa) mailto:sage [2023/05/03(水) 21:36:12.63 ID:7KJ/CzIt0.net] アスペしつこいな
411 名前:デフォルトの名無しさん (ワッチョイ 777c-KiN+) mailto:sage [2023/05/03(水) 21:40:43.87 ID:iydNsBEo0.net] >>405 お前みたいな無能が多くて困ってる
412 名前:デフォルトの名無しさん (ワッチョイ 777c-KiN+) mailto:sage [2023/05/03(水) 21:42:02.40 ID:iydNsBEo0.net] もっというと例えばMV系フレームでこの処理はモデルに書くべきだとかどうとか こういうのもどうでもいい モデルで書くべきだろうが書くべきで無かろうが 動けば良いんだよ
413 名前:デフォルトの名無しさん (ワッチョイ 777c-KiN+) mailto:sage [2023/05/03(水) 21:43:26.02 ID:iydNsBEo0.net] オブジェクト指向もそう クラス設計がどうだの継承がどうだのどうでもいい 動けば良いんだよ
414 名前:デフォルトの名無しさん (ワッチョイ 777c-KiN+) mailto:sage [2023/05/03(水) 21:46:03.28 ID:iydNsBEo0.net] このクラスでカプセル化されてないから云々 どうでも良い 動けば良いんだよ
415 名前:デフォルトの名無しさん (ワッチョイ 3702-ITaW) mailto:sage [2023/05/03(水) 21:55:41.82 ID:XU1+7Xhm0.net] 触らぬキチに祟りなし
416 名前:デフォルトの名無しさん (オッペケ Sr8b-0AmK) [2023/05/03(水) 22:10:57.21 ID:7dxnHkZLr.net] まあ中小規模だと“動けばいい”でやってるのも事実だからなぁ エクセルにチェックつけてペタペタしてソースは見ないなんてのもザラ なんならちょっとしたものなら本人が動いてる!で終わりとかね
417 名前:デフォルトの名無しさん (ワッチョイ 7f79-YtWG) mailto:sage [2023/05/03(水) 22:36:48.59 ID:0fnUMlbu0.net] >>411 動けばいいよりちょっと良くなると 何が良くなるの? 資料も書かないくせに余計な拡張要素入れたがるやつってぶっ殺したくなるんだけど? お前もその類?
418 名前:デフォルトの名無しさん (スップ Sdbf-orLb) mailto:sage [2023/05/04(木) 01:49:28.43 ID:s0gu/juAd.net] 可読性がよくなる バグが入り辛くなる 後釜がコード読んで罵倒せずにすむ 自分がクソコードに遭遇する可能性が減る
419 名前:デフォルトの名無しさん (アウアウアー Sa4f-ef8y) mailto:sage [2023/05/04(木) 03:35:15.40 ID:FCXcO5KQa.net] 資料を書く・書かないとコードを改善する・しないは別問題なのになんかキレ散らかしてるの怖・・・
420 名前:デフォルトの名無しさん (ワッチョイ ff10-By2c) mailto:sage [2023/05/04(木) 06:46:14.26 ID:gb1C7wFP0.net] なんぞ嫌なことでもあったんだろうw
421 名前:デフォルトの名無しさん (アウアウウー Sa1b-rvTa) mailto:sage [2023/05/04(木) 07:31:56.06 ID:iNiPzsH8a.net] 糞コード納品してリテイク食らって動けばいいといくら主張しても却下されてここで八つ当たりしてんじゃね
422 名前:デフォルトの名無しさん (ブーイモ MMbf-SYdp) [2023/05/04(木) 08:16:56.65 ID:2P3iGn2SM.net] 寿命の短いゲームの開発とかには動けばいいだろのメンタリティでコード書いてるやつが多い結構いる 実際クソコードだからバグ修正のアプデでまたバグるのも日常茶飯事
423 名前:デフォルトの名無しさん mailto:sage [2023/05/04(木) 10:57:14.77 ID:KzOav63c0.net] オマエらって普段からそんな立派なコード書いてるの? 皮肉でも何でもなく、大手さんの寄越したコードでもネットのサンプルをそのままコピペとか普通にあったんだけど。 アマゾンの AWS 用のサンプルコードとかでも整理なにそれなコードも普通にあるし。 ああいうレベルのものでも水準を満たしていたりするんだろうか。 まあ自分も普段は納品する側の中小だけど。
424 名前:デフォルトの名無しさん mailto:sage [2023/05/04(木) 11:02:54.68 ID:vtPK3lgJ0.net] >>1 読め
425 名前:デフォルトの名無しさん mailto:sage [2023/05/04(木) 12:11:12.80 ID:7U0ATqEaM.net] >>413 ドキュメントでも書いてよ
426 名前:デフォルトの名無しさん mailto:sage [2023/05/04(木) 13:12:46.06 ID:nZfQ3MKS0.net] >>418 PSNの個人情報流出思い出した dobon(だったはず)丸パクリの暗号化だった。"saltは8バイト以上"っていう文字列で復号化できた オレが作った社内システムも同じことしてた。 社内システムだからセキュリティは気にしてないが。
427 名前:デフォルトの名無しさん mailto:sage [2023/05/04(木) 13:16:44.41 ID:mx5edemad.net] >>420 クソコードをドキュメントに起こすときのモチベーション低下もあるな 規則性がないからな あの頃の俺はなんでこんな変な処理を……
428 名前:デフォルトの名無しさん mailto:sage [2023/05/04(木) 15:58:14.71 ID:/htkaizY0.net] >>422 言い訳はいいから書いて
429 名前:デフォルトの名無しさん mailto:sage [2023/05/04(木) 16:21:40.44 ID:FCTf23V0d.net] ?意味わからん まさか今から書いて上げろって言ってる?
430 名前:デフォルトの名無しさん (ワッチョイ 9354-ouLR) [2023/05/06(土) 20:43:47.65 ID:8uPWyiyX0.net] 非同期ファイルコピーのサンプルを探していたら、FileStream を使う方法と File.Copy を使う方法があるようなのですが、どっちがいいのでしょうか? それぞれのメリット・デメリットが知りたいです。 //方法 1 (FileStream) private static async Task CopyFileAsync(string sourceFilePath, string destinationFilePath) { using (var sourceStream = new FileStream(sourceFilePath, FileMode.Open, FileAccess.Read, FileShare.Read, bufferSize: 4096, true)) using (var destinationStream = new FileStream(destinationFilePath, FileMode.CreateNew, FileAccess.Write, FileShare.None, bufferSize: 4096, true)) { await sourceStream.CopyToAsync(destinationStream); } } //方法 2 (File.Copy) private static async Task<bool> CopyFileAsync(string srcFileName, string destFileName) { await Task.Run(() => File.Copy(srcFileName, destFileName)); return true; }
431 名前:デフォルトの名無しさん (ワッチョイ cb10-W4Ad) mailto:sage [2023/05/06(土) 22:50:57.94 ID:v1IlMQax0.net] とりあえず機能させたいならFileCopyで十分 中断とか進捗状況確認とか融通が利くのがFileStream
432 名前:デフォルトの名無しさん (ワッチョイ c2bd-O5MS) mailto:sage [2023/05/06(土) 23:28:08.83 ID:TzwbEMRu0.net] File.Copyだと同期処理がスレッドを専有しそう。 FileStream.CopyToAsyncだとそうならないように実装されているのかな?
433 名前:425 (ワッチョイ 9354-ouLR) mailto:sage [2023/05/07(日) 00:12:10.49 ID:/tWxMywy0.net] >>426-427 ありがとうございます。 FileStream を使うことにしました。
434 名前:デフォルトの名無しさん (ワッチョイ 9354-ouLR) mailto:sage [2023/05/07(日) 00:41:03.38 ID:/tWxMywy0.net] >>425 の方法でファイルコピー後、コピー先ファイルのタイムスタンプを変更しようとしたら、例外が発生します。 頻度は10回に1回あるかないか程度です。 何が原因でしょうか? static async Task Main(string[] args) { await CopyFileAsync("コピー元ファイル名.txt","コピー先ファイル名.txt"); } static async Task CopyFileAsync(string srcFileName, string destFileName) { using (var srcStream = new FileStream(srcFileName, FileMode.Open, FileAccess.Read, FileShare.Read, bufferSize: 4096, true)) using (var destStream = new FileStream(destFileName, FileMode.Create, FileAccess.Write, FileShare.None, bufferSize: 4096, true)) { await srcStream.CopyToAsync(destStream); //試しにFlush・Close・Dispose 入れてみたけどダメでした。 srcStream.Flush(); destStream.Close(); srcStream.Close(); destStream.Dispose(); srcStream.Dispose(); } var lastWriteTime = File.GetLastWriteTime(srcFileName); File.SetLastWriteTime(destFileName, lastWriteTime); //ここで、: '別のプロセスで使用されているため、プロセスはファイル 'コピー先ファイル名.txt' にアクセスできません。'
435 名前:425 (ワッチョイ 9354-ouLR) mailto:sage [2023/05/07(日) 00:57:48.70 ID:/tWxMywy0.net] 方法 2 (File.Copy) の方法でも発生しました。 まったく原因の見当がつきません・・・
436 名前:デフォルトの名無しさん (ワッチョイ 5eda-xrk/) mailto:sage [2023/05/07(日) 00:58:07.18 ID:AUxqabWy0.net] ef coreでDBからレコードを大量に取得する場合、 (A) foreach( var row in await query.ToListAsync() ) で取得する場合と (B) foreach( var row in query ) で取得する場合、どちらがアプリサーバで消費するメモリが多いでしょうか? queryはIQueryable<T>型です。 DBサーバとアプリサーバは分かれています (A)だとDBサーバから結果が全部返るまで待ってからループ開始、 (B)ならストリーミングで読み出せたところからループ処理 って勝手に想像してたんですが、ef coreで使用するDBMSのミドルウェアに依存でしょうか 具体的にはDBMSはpostgresqlです。 このあたりのドキュメントあったらURL教えてください
437 名前:デフォルトの名無しさん (ラクッペペ MMde-yLVR) mailto:sage [2023/05/07(日) 01:21:55.84 ID:m4wk6w14M.net] onedriveとかgoogledriveとかdefenderとかnortonとか
438 名前:425 (ワッチョイ 9354-ouLR) [2023/05/07(日) 01:29:00.89 ID:/tWxMywy0.net] とりあえず原因不明なので、最大10回を上限に、例外発生したらリトライするようにしました・・・ int j = 0; bool b = false; while (!b || j < 10) { try { //コピー処理 b = true; } catch { continue; } j++; }
439 名前:デフォルトの名無しさん (ワッチョイ 9354-ouLR) mailto:sage [2023/05/07(日) 01:37:17.63 ID:/tWxMywy0.net] >>432 Windows Defender 無効にしたら例外が発生しなくなりました! 天才さんありがとうございます!(>▽<)
440 名前:デフォルトの名無しさん (オッペケ Src7-KeI6) mailto:sage [2023/05/07(日) 08:06:15.51 ID:ZcKb5BN5r.net] >>431 DB絡んでないけど一般論としては https://atmarkit.itmedia.co.jp/ait/articles/1409/24/news105.html もっともODBCドライバとかDBプロパイダの作りがザルだとクエリ実行結果を一気に全件取り出して アプリサーバ上のメモリ上に保持してる可能性もゼロではないけど、postgresならそんなことはないだろう 実体化したくないけど非同期でレコードを取り出したいってことなら await foreach( var row in query.AsAsyncEnumerable() )
441 名前:デフォルトの名無しさん (ワッチョイ 5eda-xrk/) mailto:sage [2023/05/07(日) 11:06:44.59 ID:AUxqabWy0.net] >>435 ありがとうございます。 ToList()やToListAsync()はすべての結果が利用可能になるまで何も返されない、つまり 大量レコード処理には向かない (B)の場合でもAsNoTracking()をつけて変更検知をOFFにしないと Linq to DBがキャッシュしてしまいメモリ使用量が大きくなる (B)でさらにI/Oをブロックしたくない場合、非同期ストリームを利用する ということで大量レコードをチビチビ処理する場合は async foreach( var row in query.AsNoTracking() ) という書き方に落ち着きました 他の参考URL https://stackoverflow.com/questions/56176176/difference-between-tolistasync-and-asasyncenumerable-tolist https://stackoverflow.com/questions/3688213/iterating-through-iqueryable-with-foreach-results-in-an-out-of-memory-exception
442 名前:デフォルトの名無しさん (ワッチョイ 5eda-xrk/) mailto:sage [2023/05/07(日) 11:09:18.20 ID:AUxqabWy0.net] ミス 最終的に async foreach( var row in query.AsNoTracking().AsAsyncEnumerable() ) という書き方に落ち着きました
443 名前:デフォルトの名無しさん (ワッチョイ 4679-U4yn) mailto:sage [2023/05/07(日) 11:24:15.43 ID:4ZIcGn3M0.net] 終わるまでにめっちゃメモリ使って死ぬ感じある
444 名前:デフォルトの名無しさん (ワッチョイ 1279-y4C+) mailto:sage [2023/05/07(日) 14:06:12.41 ID:O0op5Uvp0.net] Defenderやらが邪魔するのはそうなんだろうけど C/C++でACLや属性変更でリトライなんてしてた覚えないからC#のDisposeでファイルがちゃんとクローズできてないだけな気もする
445 名前:デフォルトの名無しさん (ササクッテロリ Spc7-Z7Ea) mailto:sage [2023/05/08(月) 10:05:23.91 ID:3mw2N0vvp.net] Disposeでクローズなんかしないだろ? つかそんな実装頼みの使い方してたら痛い目に遭うぞ
446 名前:デフォルトの名無しさん (ワッチョイ b7e5-tcUg) mailto:sage [2023/05/08(月) 13:04:12.03 ID:h5IiweHd0.net] using制御しかしてないわ
447 名前:デフォルトの名無しさん (スプッッ Sd52-8wHc) mailto:sage [2023/05/08(月) 13:11:33.93 ID:x7lJRSufd.net] >>439-441 >>429 はWidows Defenderのせいにして終わってるから 納得できる形で解決してみせてよ
448 名前:デフォルトの名無しさん (ササクッテロリ Spc7-Z7Ea) mailto:sage [2023/05/08(月) 13:27:23.81 ID:Rh3bbmbap.net] >>442 非同期なら当たり前に発生するなw
449 名前:デフォルトの名無しさん (ラクッペペ MMde-yLVR) mailto:sage [2023/05/08(月) 13:29:30.54 ID:QcInbmeDM.net] ファイルを閉じるから横取りされるんだぞ
450 名前:デフォルトの名無しさん (スッップ Sd32-KeI6) mailto:sage [2023/05/08(月) 13:38:05.76 ID:TxJAG0JMd.net] 今回みたいなケースでファイルクローズ直後にファイルいじろうとすると使用中の様な警告出ることあるから 基本的にリトライするようなコード入れてるけどそんなことないのかね
451 名前:デフォルトの名無しさん (ササクッテロリ Spc7-Z7Ea) mailto:sage [2023/05/08(月) 13:53:31.24 ID:xSxPowKip.net] OS側の処理も非同期なんだと予想
452 名前:デフォルトの名無しさん (スプッッ Sd52-8wHc) mailto:sage [2023/05/08(月) 15:24:20.83 ID:NYRttg47d.net] いちいちリトライなんか仕込んてたらハゲそう イラネーヨって言ってくれ
453 名前:デフォルトの名無しさん (ワッチョイ c2bd-O5MS) mailto:sage [2023/05/08(月) 23:17:00.86 ID:n3psyKuA0.net] >>440 IDisposableを継承しているのにクローズしなかったら使い物にならないだろ。 例えばFileStreamクラスのDispose()には、 Stream によって使用されているすべてのリソースを解放します。 とあるので、当然Closeもする。
454 名前:デフォルトの名無しさん (ワッチョイ c2bd-O5MS) mailto:sage [2023/05/08(月) 23:18:14.32 ID:n3psyKuA0.net] あ、継承じゃなくて実装だ。
455 名前:デフォルトの名無しさん (ワッチョイ cb7c-DUGT) mailto:sage [2023/05/09(火) 04:40:15.34 ID:fisd8t0i0.net] Disposeの処理の中でClose普通に呼んでたはず ソース見りゃ分かるやろ
456 名前:448 (ワッチョイ c2bd-O5MS) mailto:sage [2023/05/09(火) 04:54:39.15 ID:b+hc+8Ui0.net] >>450 >>440 が「そんな実装頼みの」って言ったので、あえてソースを見ずにドキュメントの内容で答えた。
457 名前:デフォルトの名無しさん (アウグロ MMb3-G648) mailto:sage [2023/05/09(火) 07:21:46.18 ID:2h4Q3q9eM.net] asyncawaitに対応してない何かがあるのかもな
458 名前:デフォルトの名無しさん mailto:sage [2023/05/09(火) 08:53:33.61 ID:F+qDabIr0.net] 自作じゃない.NET純正で、Taskを返す〇〇Asyncメソッドがasyncawait対応してないは無いでしょ
459 名前:デフォルトの名無しさん mailto:sage [2023/05/09(火) 10:25:27.81 ID:wTiHbcrZp.net] だから、OSだって非同期にファイル処理してるんだろ? で、完了通知なんて受けて無いw
460 名前:デフォルトの名無しさん mailto:sage [2023/05/09(火) 11:26:49.94 ID:TDrxScizd.net] C#のファイル操作が遅いからファイルコピーと属性変更との間にWindowsDefebderが割り込んでスキャンされて妨害されるのかもしれない 知らんけど
461 名前:デフォルトの名無しさん mailto:sage [2023/05/09(火) 11:28:32.40 ID:LwvaBWbia.net] >>455 win32apiを使ってるのでさすがにそれなはい 削除してもすぐにファイルが消えないのはあるあるだからリトライするのが定番
462 名前:デフォルトの名無しさん [2023/05/09(火) 11:46:04.35 ID:vAJE1vUCr.net] とはいえ 頻度は10回に1回あるかないか程度 Windows Defender 無効にしたら例外が発生しなく なら妥当かもしれない
463 名前:デフォルトの名無しさん mailto:sage [2023/05/09(火) 16:21:49.31 ID:GXFqLAgP0.net] >>429 これ閉じる前にFileStream.SafeHandle使ってSetLastWriteTime(SafeFileHandle, DateTime)のオーバーロード使うのはどうなの?
464 名前:デフォルトの名無しさん mailto:sage [2023/05/09(火) 20:43:33.82 ID:ZCATFg/N0.net] 質問なんですが formのbutton1.textをテキストボックスから取得したいのですが、 テキストが長い場合、ボタンのテキストが改行されてしまいます 表示が後半隠れてしまうのは別に構わないのですが、 改行がおこるとテキストがボタンの上側に移動してしまいます button1.textを改行しないようにできないでしょうか?
465 名前:デフォルトの名無しさん mailto:sage [2023/05/09(火) 22:36:11.30 ID:ZhePtJGs0.net] ボタンのPaintイベントで自前描画すればOK
466 名前:デフォルトの名無しさん (ワッチョイ 1279-y4C+) mailto:sage [2023/05/09(火) 22:41:53.48 ID:U2HEifZi0.net] button1.AutoEllipsis = true;
467 名前:デフォルトの名無しさん (ブーイモ MMdb-mskx) mailto:sage [2023/05/10(水) 10:41:28.62 ID:B1N+exWkM.net] どなたか教えてくださいC#です public class Person { public Name Name { get; set; } } public class Name { public string NameText { get; set; } } こういうクラスがあったとして、 var p = new Person { Name = {}, }; Console.WriteLine(p.Name); これはnullが出力されるんですが、構文解析時のName={}の右辺はどういう評価をされてるんでしょうか? また var p = new Person { Name = {NameText=""}, }; これもコンパイルは通りますが実行時にObject reference not set to an instance of an object.で落ちます Name = {NameText=""}, の{NameText=""}は構文解析時にどういうモノとして扱われてるんでしょうか? 本来はName= new Name{NamText=...}とするところで、new {クラス名}を書き忘れたらビルドが通っていたのでなんだろうと思った所存です
468 名前:デフォルトの名無しさん (ワッチョイ b74f-hGOv) mailto:sage [2023/05/10(水) 11:20:13.56 ID:iQXLAALm0.net] オブジェクト初期化子 1つ目のケースは初期化するプロパティがないので何もしない 2つ目のケースはこれと同じ意味になる var p = new Person(); p.Name.NameText = ""; https://ufcpp.net/blog/2016/12/tipsobjectinitializer/
469 名前:デフォルトの名無しさん (ワッチョイ 52de-KeI6) mailto:sage [2023/05/10(水) 11:21:23.96 ID:tkTpg3dz0.net] >>460 レスありがとう、Paintイベント追加で自力でやるのはけっこう大変そうですね >>461 ありがとう、...省略はできたけど、文字は上側に寄ったままでした button1.Padding.Topに4ぐらいいれたら解決しました
470 名前:デフォルトの名無しさん (ブーイモ MMdb-mskx) mailto:sage [2023/05/10(水) 11:27:39.61 ID:NYVeTygZM.net] >>463 なるほど!ありがとうございます! いやーこれはコンパイル時に落としてほしい…
471 名前:デフォルトの名無しさん (ワッチョイ ff2d-vOwS) mailto:sage [2023/05/10(水) 11:28:45.20 ID:qs6QvCEc0.net] Formsで独自描画はバッドノウハウに近いと思う スケーリング考慮してないのばっかり
472 名前:デフォルトの名無しさん (ワッチョイ b74f-hGOv) mailto:sage [2023/05/10(水) 13:49:34.03 ID:iQXLAALm0.net] >>465 AのコンストラクタでNameがnewされてたら問題ないわけだし使い分けでしかないね nullableを有効化しとけばこのケースだとAのNameがnull許容でもnull非許容でも警告出してくれるよ
473 名前:デフォルトの名無しさん (ワッチョイ c23d-Lyct) [2023/05/10(水) 14:23:44.58 ID:6sAnxqBz0.net] C#でASP.NETでHTMLコード書くにはどこいじればいいの?
474 名前:429 (ワッチョイ 9354-ouLR) [2023/05/10(水) 17:05:27.60 ID:QPN4FwhI0.net] 私にとっての解決後も議論があったようですが、 Windows Defender を無効化 ( Windows Defender の [除外] に、コピー先フォルダを登録する ) してから、1回も発生していません。 for(int i = 0; i < 100; i++){} での 100回ループテストを何度か行っても発生していないので、自分の中では解決済みになっています。
475 名前:デフォルトの名無しさん (ササクッテロル Spc7-Z7Ea) mailto:sage [2023/05/10(水) 18:11:17.94 ID:rAs2Y7NDp.net] ファイル内容変更したからウイルスチェックが走ってんじゃん ってオチかよw
476 名前:デフォルトの名無しさん (ワッチョイ 1610-tcUg) mailto:sage [2023/05/10(水) 18:54:24.51 ID:6aE3wdSe0.net] オチかよも何も、最初からそういう話だったのに DisposeがちゃんとやってないんだろとかOSの遅延がうんたらとか頭でっかちが騒いでるだけやで
477 名前:デフォルトの名無しさん (ワッチョイ 4679-jUDw) mailto:sage [2023/05/10(水) 18:59:46.60 ID:KHK6MiQv0.net] asyncawaitってスレッドセーフのメソッドじゃなくても使っていんだっけ?
478 名前:デフォルトの名無しさん (アウアウウー Sac3-16n5) mailto:sage [2023/05/10(水) 19:16:24.65 ID:PlKEk/pSa.net] >>456 で結論書いてやったのにまだやってたのか
479 名前:デフォルトの名無しさん (ササクッテロル Spc7-Z7Ea) mailto:sage [2023/05/10(水) 19:57:37.80 ID:n33wvc2tp.net] >>473 全く結論になって無いよあれ 単なる対症療法なだけだろw
480 名前:デフォルトの名無しさん (アウアウウー Sac3-16n5) mailto:sage [2023/05/10(水) 20:01:05.91 ID:PlKEk/pSa.net] その対症療法が唯一の治療法なんだがまだそれもわからないのかよw