!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の使い方などに関しては各バージョンで違うので専用スレでお願いします
http://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
探検
ふらっと C#,C♯,C#(初心者用) Part158
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ fe7b-Nimo)
2023/03/26(日) 07:31:00.51ID:2LMOL5Ty0382デフォルトの名無しさん (ワッチョイ 777c-KiN+)
2023/05/03(水) 13:57:38.37ID:iydNsBEo0383デフォルトの名無しさん (ワッチョイ 1707-rvTa)
2023/05/03(水) 13:59:04.86ID:7KJ/CzIt0 動けばいいとしつこく言ってるやつはただの無職だよ
無職の妄想の中ではそうなんだろうさ
現実には動くのは当然で最低限でしかないんだけどね
無職の妄想の中ではそうなんだろうさ
現実には動くのは当然で最低限でしかないんだけどね
384デフォルトの名無しさん (ワッチョイ 777c-KiN+)
2023/05/03(水) 14:03:35.88ID:iydNsBEo0385デフォルトの名無しさん (ワッチョイ bfbc-o+T5)
2023/05/03(水) 14:06:31.39ID:5+L69Iha0 まああんまり完璧なコードを書くと、その後の仕事がなくなるからな。
386デフォルトの名無しさん (ワッチョイ ffbb-zzYQ)
2023/05/03(水) 14:09:44.71ID:RLCA5WWQ0 > 777c-KiN+
ついでに聞くけど、お前の中でシステム監査ってどんなもんなの?
ついでに聞くけど、お前の中でシステム監査ってどんなもんなの?
387デフォルトの名無しさん (ワッチョイ 777c-KiN+)
2023/05/03(水) 14:15:23.93ID:iydNsBEo0 >>386
すまん無能の質問の意味が分からん
システム監査って経済産業省とかIPAに定義あるよね
普通はそれに準拠したものが一般的だと思うんだ
つまり共通認識じゃないの?
無能の頭の中って俺俺監査があるん?
すまん無能の質問の意味が分からん
システム監査って経済産業省とかIPAに定義あるよね
普通はそれに準拠したものが一般的だと思うんだ
つまり共通認識じゃないの?
無能の頭の中って俺俺監査があるん?
388デフォルトの名無しさん (ワッチョイ ffbb-zzYQ)
2023/05/03(水) 14:19:36.70ID:RLCA5WWQ0 > だって製品の検査で調べるのはその動くかどうかじゃん
こんなこと言ってるし、また俺のシラン世界があるのかと
こんなこと言ってるし、また俺のシラン世界があるのかと
389デフォルトの名無しさん (ワッチョイ 777c-KiN+)
2023/05/03(水) 14:26:32.08ID:iydNsBEo0390デフォルトの名無しさん (ワッチョイ 9f4b-gncP)
2023/05/03(水) 14:26:49.46ID:vL8FscsM0 GWだねぇ
391デフォルトの名無しさん (ワッチョイ ffbb-zzYQ)
2023/05/03(水) 14:30:01.23ID:RLCA5WWQ0392デフォルトの名無しさん (ワッチョイ 777c-KiN+)
2023/05/03(水) 14:37:49.92ID:iydNsBEo0 >>391
繰り返すアホ
繰り返すアホ
393デフォルトの名無しさん (スッップ Sdbf-oJ27)
2023/05/03(水) 14:42:38.57ID:s1pMNzuQd394デフォルトの名無しさん (ワッチョイ ffbb-zzYQ)
2023/05/03(水) 14:48:38.92ID:RLCA5WWQ0 俺の知ってる世界だと、システム監査ってのは雑に言うとシステムを体制として担保する方法ができてるかを確認するもの
で、「機能要件や非機能要件 セキュリティ要件」に関連した箇所でいうと、それらの要件が正しく永続的に保証できる証跡が残せるか?って観点で監査される
つまり、
> だって製品の検査で調べるのはその動くかどうかじゃん
ってことにはならんのよ
だから、コーダーが「動けばいい」ってスタンスで仕事してたら、レビュアーが体制としてブチ切れるんだわ
で、お前の中のシステム監査ってどんなもんなん?
で、「機能要件や非機能要件 セキュリティ要件」に関連した箇所でいうと、それらの要件が正しく永続的に保証できる証跡が残せるか?って観点で監査される
つまり、
> だって製品の検査で調べるのはその動くかどうかじゃん
ってことにはならんのよ
だから、コーダーが「動けばいい」ってスタンスで仕事してたら、レビュアーが体制としてブチ切れるんだわ
で、お前の中のシステム監査ってどんなもんなん?
395デフォルトの名無しさん (ワッチョイ 9f2f-g9Ql)
2023/05/03(水) 15:09:07.11ID:fD0yPqm80 動けばいいってのは
なぜそう書かないほうが良いのか、ちゃんと理解して説明できないやつの言い訳
まあそう書くなって言ってる奴もちゃんと説明できてないんだがな
なぜそう書かないほうが良いのか、ちゃんと理解して説明できないやつの言い訳
まあそう書くなって言ってる奴もちゃんと説明できてないんだがな
396デフォルトの名無しさん (ワッチョイ ff10-By2c)
2023/05/03(水) 15:19:09.40ID:YldI9T9X0 >>390
GW終わって2ヵ月ちょい経つと今度は夏だねぇってなるんだよな
GW終わって2ヵ月ちょい経つと今度は夏だねぇってなるんだよな
397デフォルトの名無しさん (ワッチョイ 1f3d-VWCj)
2023/05/03(水) 15:26:23.95ID:49Yy066J0 ぼんやりとした質問ですが、
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/");
}
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/");
}
398デフォルトの名無しさん (ワッチョイ 1f3d-VWCj)
2023/05/03(水) 15:26:47.58ID:49Yy066J0 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が出てきません
{
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が出てきません
399デフォルトの名無しさん (ワッチョイ ff10-By2c)
2023/05/03(水) 16:36:13.15ID:YldI9T9X0 Form1に配置してるWebView2がprivateで宣言されてるからじゃないかね
VS使ってるならデザイナーで選択してプロパティウィンドウのModifiersを確認して
PrivateになってるならInternalかPublicにしたらいいよ
VS使ってるならデザイナーで選択してプロパティウィンドウのModifiersを確認して
PrivateになってるならInternalかPublicにしたらいいよ
400デフォルトの名無しさん (ササクッテロリ Sp8b-Hgfr)
2023/05/03(水) 16:48:57.57ID:rOyAnSv/p プライベートのままアクセサ作れば良くね?
401デフォルトの名無しさん (ワッチョイ bf42-fitb)
2023/05/03(水) 17:56:30.72ID:DnrzKFHb0 そもそも素人コーディングをやるやつがマトモなアプリ書けるとは思えん
アプリの作り方を勉強した人ならマシなコード書くからな
アプリの作り方を勉強した人ならマシなコード書くからな
402デフォルトの名無しさん (ワッチョイ 1f3d-VWCj)
2023/05/03(水) 19:51:19.18ID:49Yy066J0 >>399-401
解決しました。ありがとうございます。
解決しました。ありがとうございます。
403デフォルトの名無しさん (ワッチョイ 777c-KiN+)
2023/05/03(水) 21:30:59.09ID:iydNsBEo0404デフォルトの名無しさん (ワッチョイ 777c-KiN+)
2023/05/03(水) 21:35:17.93ID:iydNsBEo0 >>394
もっと分かりやすい例を出そう
例えば同じ処理を100箇所コピペ出実装したとする
普通なら関数化してってやるわな
こんな100箇所コピペした糞コードでもシステム監査や他のテストでは一切問題にならない
動けば良いんだよ
もっと分かりやすい例を出そう
例えば同じ処理を100箇所コピペ出実装したとする
普通なら関数化してってやるわな
こんな100箇所コピペした糞コードでもシステム監査や他のテストでは一切問題にならない
動けば良いんだよ
405デフォルトの名無しさん (ワッチョイ 1707-rvTa)
2023/05/03(水) 21:36:12.63ID:7KJ/CzIt0 アスペしつこいな
406デフォルトの名無しさん (ワッチョイ 777c-KiN+)
2023/05/03(水) 21:40:43.87ID:iydNsBEo0 >>405
お前みたいな無能が多くて困ってる
お前みたいな無能が多くて困ってる
407デフォルトの名無しさん (ワッチョイ 777c-KiN+)
2023/05/03(水) 21:42:02.40ID:iydNsBEo0 もっというと例えばMV系フレームでこの処理はモデルに書くべきだとかどうとか
こういうのもどうでもいい
モデルで書くべきだろうが書くべきで無かろうが
動けば良いんだよ
こういうのもどうでもいい
モデルで書くべきだろうが書くべきで無かろうが
動けば良いんだよ
408デフォルトの名無しさん (ワッチョイ 777c-KiN+)
2023/05/03(水) 21:43:26.02ID:iydNsBEo0 オブジェクト指向もそう
クラス設計がどうだの継承がどうだのどうでもいい
動けば良いんだよ
クラス設計がどうだの継承がどうだのどうでもいい
動けば良いんだよ
409デフォルトの名無しさん (ワッチョイ 777c-KiN+)
2023/05/03(水) 21:46:03.28ID:iydNsBEo0 このクラスでカプセル化されてないから云々
どうでも良い
動けば良いんだよ
どうでも良い
動けば良いんだよ
410デフォルトの名無しさん (ワッチョイ 3702-ITaW)
2023/05/03(水) 21:55:41.82ID:XU1+7Xhm0 触らぬキチに祟りなし
411デフォルトの名無しさん (オッペケ Sr8b-0AmK)
2023/05/03(水) 22:10:57.21ID:7dxnHkZLr まあ中小規模だと“動けばいい”でやってるのも事実だからなぁ
エクセルにチェックつけてペタペタしてソースは見ないなんてのもザラ
なんならちょっとしたものなら本人が動いてる!で終わりとかね
エクセルにチェックつけてペタペタしてソースは見ないなんてのもザラ
なんならちょっとしたものなら本人が動いてる!で終わりとかね
412デフォルトの名無しさん (ワッチョイ 7f79-YtWG)
2023/05/03(水) 22:36:48.59ID:0fnUMlbu0413デフォルトの名無しさん (スップ Sdbf-orLb)
2023/05/04(木) 01:49:28.43ID:s0gu/juAd 可読性がよくなる
バグが入り辛くなる
後釜がコード読んで罵倒せずにすむ
自分がクソコードに遭遇する可能性が減る
バグが入り辛くなる
後釜がコード読んで罵倒せずにすむ
自分がクソコードに遭遇する可能性が減る
414デフォルトの名無しさん (アウアウアー Sa4f-ef8y)
2023/05/04(木) 03:35:15.40ID:FCXcO5KQa 資料を書く・書かないとコードを改善する・しないは別問題なのになんかキレ散らかしてるの怖・・・
415デフォルトの名無しさん (ワッチョイ ff10-By2c)
2023/05/04(木) 06:46:14.26ID:gb1C7wFP0 なんぞ嫌なことでもあったんだろうw
416デフォルトの名無しさん (アウアウウー Sa1b-rvTa)
2023/05/04(木) 07:31:56.06ID:iNiPzsH8a 糞コード納品してリテイク食らって動けばいいといくら主張しても却下されてここで八つ当たりしてんじゃね
417デフォルトの名無しさん (ブーイモ MMbf-SYdp)
2023/05/04(木) 08:16:56.65ID:2P3iGn2SM 寿命の短いゲームの開発とかには動けばいいだろのメンタリティでコード書いてるやつが多い結構いる
実際クソコードだからバグ修正のアプデでまたバグるのも日常茶飯事
実際クソコードだからバグ修正のアプデでまたバグるのも日常茶飯事
418デフォルトの名無しさん (ワッチョイ bfbc-o+T5)
2023/05/04(木) 10:57:14.77ID:KzOav63c0 オマエらって普段からそんな立派なコード書いてるの?
皮肉でも何でもなく、大手さんの寄越したコードでもネットのサンプルをそのままコピペとか普通にあったんだけど。
アマゾンの AWS 用のサンプルコードとかでも整理なにそれなコードも普通にあるし。
ああいうレベルのものでも水準を満たしていたりするんだろうか。
まあ自分も普段は納品する側の中小だけど。
皮肉でも何でもなく、大手さんの寄越したコードでもネットのサンプルをそのままコピペとか普通にあったんだけど。
アマゾンの AWS 用のサンプルコードとかでも整理なにそれなコードも普通にあるし。
ああいうレベルのものでも水準を満たしていたりするんだろうか。
まあ自分も普段は納品する側の中小だけど。
419デフォルトの名無しさん (ワッチョイ 3778-fitb)
2023/05/04(木) 11:02:54.68ID:vtPK3lgJ0 >>1読め
420デフォルトの名無しさん (アウグロ MMdf-YtWG)
2023/05/04(木) 12:11:12.80ID:7U0ATqEaM >>413
ドキュメントでも書いてよ
ドキュメントでも書いてよ
421デフォルトの名無しさん (ワッチョイ 9fda-pQRJ)
2023/05/04(木) 13:12:46.06ID:nZfQ3MKS0 >>418
PSNの個人情報流出思い出した
dobon(だったはず)丸パクリの暗号化だった。"saltは8バイト以上"っていう文字列で復号化できた
オレが作った社内システムも同じことしてた。
社内システムだからセキュリティは気にしてないが。
PSNの個人情報流出思い出した
dobon(だったはず)丸パクリの暗号化だった。"saltは8バイト以上"っていう文字列で復号化できた
オレが作った社内システムも同じことしてた。
社内システムだからセキュリティは気にしてないが。
422デフォルトの名無しさん (スップ Sdbf-orLb)
2023/05/04(木) 13:16:44.41ID:mx5edemad423デフォルトの名無しさん (ワッチョイ 7f79-YtWG)
2023/05/04(木) 15:58:14.71ID:/htkaizY0 >>422
言い訳はいいから書いて
言い訳はいいから書いて
424デフォルトの名無しさん (スップ Sdbf-orLb)
2023/05/04(木) 16:21:40.44ID:FCTf23V0d ?意味わからん
まさか今から書いて上げろって言ってる?
まさか今から書いて上げろって言ってる?
425デフォルトの名無しさん (ワッチョイ 9354-ouLR)
2023/05/06(土) 20:43:47.65ID:8uPWyiyX0 非同期ファイルコピーのサンプルを探していたら、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;
}
それぞれのメリット・デメリットが知りたいです。
//方法 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;
}
426デフォルトの名無しさん (ワッチョイ cb10-W4Ad)
2023/05/06(土) 22:50:57.94ID:v1IlMQax0 とりあえず機能させたいならFileCopyで十分
中断とか進捗状況確認とか融通が利くのがFileStream
中断とか進捗状況確認とか融通が利くのがFileStream
427デフォルトの名無しさん (ワッチョイ c2bd-O5MS)
2023/05/06(土) 23:28:08.83ID:TzwbEMRu0 File.Copyだと同期処理がスレッドを専有しそう。
FileStream.CopyToAsyncだとそうならないように実装されているのかな?
FileStream.CopyToAsyncだとそうならないように実装されているのかな?
428425 (ワッチョイ 9354-ouLR)
2023/05/07(日) 00:12:10.49ID:/tWxMywy0429デフォルトの名無しさん (ワッチョイ 9354-ouLR)
2023/05/07(日) 00:41:03.38ID:/tWxMywy0 >>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' にアクセスできません。'
頻度は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' にアクセスできません。'
430425 (ワッチョイ 9354-ouLR)
2023/05/07(日) 00:57:48.70ID:/tWxMywy0 方法 2 (File.Copy) の方法でも発生しました。
まったく原因の見当がつきません・・・
まったく原因の見当がつきません・・・
431デフォルトの名無しさん (ワッチョイ 5eda-xrk/)
2023/05/07(日) 00:58:07.18ID:AUxqabWy0 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教えてください
(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教えてください
432デフォルトの名無しさん (ラクッペペ MMde-yLVR)
2023/05/07(日) 01:21:55.84ID:m4wk6w14M onedriveとかgoogledriveとかdefenderとかnortonとか
433425 (ワッチョイ 9354-ouLR)
2023/05/07(日) 01:29:00.89ID:/tWxMywy0 とりあえず原因不明なので、最大10回を上限に、例外発生したらリトライするようにしました・・・
int j = 0;
bool b = false;
while (!b || j < 10)
{
try
{
//コピー処理
b = true;
}
catch
{
continue;
}
j++;
}
int j = 0;
bool b = false;
while (!b || j < 10)
{
try
{
//コピー処理
b = true;
}
catch
{
continue;
}
j++;
}
434デフォルトの名無しさん (ワッチョイ 9354-ouLR)
2023/05/07(日) 01:37:17.63ID:/tWxMywy0435デフォルトの名無しさん (オッペケ Src7-KeI6)
2023/05/07(日) 08:06:15.51ID:ZcKb5BN5r >>431
DB絡んでないけど一般論としては
https://atmarkit.itmedia.co.jp/ait/articles/1409/24/news105.html
もっともODBCドライバとかDBプロパイダの作りがザルだとクエリ実行結果を一気に全件取り出して
アプリサーバ上のメモリ上に保持してる可能性もゼロではないけど、postgresならそんなことはないだろう
実体化したくないけど非同期でレコードを取り出したいってことなら
await foreach( var row in query.AsAsyncEnumerable() )
DB絡んでないけど一般論としては
https://atmarkit.itmedia.co.jp/ait/articles/1409/24/news105.html
もっともODBCドライバとかDBプロパイダの作りがザルだとクエリ実行結果を一気に全件取り出して
アプリサーバ上のメモリ上に保持してる可能性もゼロではないけど、postgresならそんなことはないだろう
実体化したくないけど非同期でレコードを取り出したいってことなら
await foreach( var row in query.AsAsyncEnumerable() )
436デフォルトの名無しさん (ワッチョイ 5eda-xrk/)
2023/05/07(日) 11:06:44.59ID:AUxqabWy0 >>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
ありがとうございます。
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
437デフォルトの名無しさん (ワッチョイ 5eda-xrk/)
2023/05/07(日) 11:09:18.20ID:AUxqabWy0 ミス
最終的に
async foreach( var row in query.AsNoTracking().AsAsyncEnumerable() )
という書き方に落ち着きました
最終的に
async foreach( var row in query.AsNoTracking().AsAsyncEnumerable() )
という書き方に落ち着きました
438デフォルトの名無しさん (ワッチョイ 4679-U4yn)
2023/05/07(日) 11:24:15.43ID:4ZIcGn3M0 終わるまでにめっちゃメモリ使って死ぬ感じある
439デフォルトの名無しさん (ワッチョイ 1279-y4C+)
2023/05/07(日) 14:06:12.41ID:O0op5Uvp0 Defenderやらが邪魔するのはそうなんだろうけど
C/C++でACLや属性変更でリトライなんてしてた覚えないからC#のDisposeでファイルがちゃんとクローズできてないだけな気もする
C/C++でACLや属性変更でリトライなんてしてた覚えないからC#のDisposeでファイルがちゃんとクローズできてないだけな気もする
440デフォルトの名無しさん (ササクッテロリ Spc7-Z7Ea)
2023/05/08(月) 10:05:23.91ID:3mw2N0vvp Disposeでクローズなんかしないだろ?
つかそんな実装頼みの使い方してたら痛い目に遭うぞ
つかそんな実装頼みの使い方してたら痛い目に遭うぞ
441デフォルトの名無しさん (ワッチョイ b7e5-tcUg)
2023/05/08(月) 13:04:12.03ID:h5IiweHd0 using制御しかしてないわ
442デフォルトの名無しさん (スプッッ Sd52-8wHc)
2023/05/08(月) 13:11:33.93ID:x7lJRSufd443デフォルトの名無しさん (ササクッテロリ Spc7-Z7Ea)
2023/05/08(月) 13:27:23.81ID:Rh3bbmbap >>442
非同期なら当たり前に発生するなw
非同期なら当たり前に発生するなw
444デフォルトの名無しさん (ラクッペペ MMde-yLVR)
2023/05/08(月) 13:29:30.54ID:QcInbmeDM ファイルを閉じるから横取りされるんだぞ
445デフォルトの名無しさん (スッップ Sd32-KeI6)
2023/05/08(月) 13:38:05.76ID:TxJAG0JMd 今回みたいなケースでファイルクローズ直後にファイルいじろうとすると使用中の様な警告出ることあるから
基本的にリトライするようなコード入れてるけどそんなことないのかね
基本的にリトライするようなコード入れてるけどそんなことないのかね
446デフォルトの名無しさん (ササクッテロリ Spc7-Z7Ea)
2023/05/08(月) 13:53:31.24ID:xSxPowKip OS側の処理も非同期なんだと予想
447デフォルトの名無しさん (スプッッ Sd52-8wHc)
2023/05/08(月) 15:24:20.83ID:NYRttg47d いちいちリトライなんか仕込んてたらハゲそう
イラネーヨって言ってくれ
イラネーヨって言ってくれ
448デフォルトの名無しさん (ワッチョイ c2bd-O5MS)
2023/05/08(月) 23:17:00.86ID:n3psyKuA0 >>440
IDisposableを継承しているのにクローズしなかったら使い物にならないだろ。
例えばFileStreamクラスのDispose()には、
Stream によって使用されているすべてのリソースを解放します。
とあるので、当然Closeもする。
IDisposableを継承しているのにクローズしなかったら使い物にならないだろ。
例えばFileStreamクラスのDispose()には、
Stream によって使用されているすべてのリソースを解放します。
とあるので、当然Closeもする。
449デフォルトの名無しさん (ワッチョイ c2bd-O5MS)
2023/05/08(月) 23:18:14.32ID:n3psyKuA0 あ、継承じゃなくて実装だ。
450デフォルトの名無しさん (ワッチョイ cb7c-DUGT)
2023/05/09(火) 04:40:15.34ID:fisd8t0i0 Disposeの処理の中でClose普通に呼んでたはず
ソース見りゃ分かるやろ
ソース見りゃ分かるやろ
451448 (ワッチョイ c2bd-O5MS)
2023/05/09(火) 04:54:39.15ID:b+hc+8Ui0452デフォルトの名無しさん (アウグロ MMb3-G648)
2023/05/09(火) 07:21:46.18ID:2h4Q3q9eM asyncawaitに対応してない何かがあるのかもな
453デフォルトの名無しさん (ワッチョイ b7e5-tcUg)
2023/05/09(火) 08:53:33.61ID:F+qDabIr0 自作じゃない.NET純正で、Taskを返す〇〇Asyncメソッドがasyncawait対応してないは無いでしょ
454デフォルトの名無しさん (ササクッテロル Spc7-Z7Ea)
2023/05/09(火) 10:25:27.81ID:wTiHbcrZp だから、OSだって非同期にファイル処理してるんだろ?
で、完了通知なんて受けて無いw
で、完了通知なんて受けて無いw
455デフォルトの名無しさん (スプッッ Sd52-8wHc)
2023/05/09(火) 11:26:49.94ID:TDrxScizd C#のファイル操作が遅いからファイルコピーと属性変更との間にWindowsDefebderが割り込んでスキャンされて妨害されるのかもしれない
知らんけど
知らんけど
456デフォルトの名無しさん (アウアウウー Sac3-16n5)
2023/05/09(火) 11:28:32.40ID:LwvaBWbia457デフォルトの名無しさん (オッペケ Src7-iqBk)
2023/05/09(火) 11:46:04.35ID:vAJE1vUCr とはいえ
頻度は10回に1回あるかないか程度
Windows Defender 無効にしたら例外が発生しなく
なら妥当かもしれない
頻度は10回に1回あるかないか程度
Windows Defender 無効にしたら例外が発生しなく
なら妥当かもしれない
458デフォルトの名無しさん (ワッチョイ d201-6snu)
2023/05/09(火) 16:21:49.31ID:GXFqLAgP0 >>429
これ閉じる前にFileStream.SafeHandle使ってSetLastWriteTime(SafeFileHandle, DateTime)のオーバーロード使うのはどうなの?
これ閉じる前にFileStream.SafeHandle使ってSetLastWriteTime(SafeFileHandle, DateTime)のオーバーロード使うのはどうなの?
459デフォルトの名無しさん (ワッチョイ 52de-KeI6)
2023/05/09(火) 20:43:33.82ID:ZCATFg/N0 質問なんですが
formのbutton1.textをテキストボックスから取得したいのですが、
テキストが長い場合、ボタンのテキストが改行されてしまいます
表示が後半隠れてしまうのは別に構わないのですが、
改行がおこるとテキストがボタンの上側に移動してしまいます
button1.textを改行しないようにできないでしょうか?
formのbutton1.textをテキストボックスから取得したいのですが、
テキストが長い場合、ボタンのテキストが改行されてしまいます
表示が後半隠れてしまうのは別に構わないのですが、
改行がおこるとテキストがボタンの上側に移動してしまいます
button1.textを改行しないようにできないでしょうか?
460デフォルトの名無しさん (ワッチョイ 7378-KeI6)
2023/05/09(火) 22:36:11.30ID:ZhePtJGs0 ボタンのPaintイベントで自前描画すればOK
461デフォルトの名無しさん (ワッチョイ 1279-y4C+)
2023/05/09(火) 22:41:53.48ID:U2HEifZi0 button1.AutoEllipsis = true;
462デフォルトの名無しさん (ブーイモ MMdb-mskx)
2023/05/10(水) 10:41:28.62ID:B1N+exWkM どなたか教えてください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 {クラス名}を書き忘れたらビルドが通っていたのでなんだろうと思った所存です
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 {クラス名}を書き忘れたらビルドが通っていたのでなんだろうと思った所存です
463デフォルトの名無しさん (ワッチョイ b74f-hGOv)
2023/05/10(水) 11:20:13.56ID:iQXLAALm0 オブジェクト初期化子
1つ目のケースは初期化するプロパティがないので何もしない
2つ目のケースはこれと同じ意味になる
var p = new Person();
p.Name.NameText = "";
https://ufcpp.net/blog/2016/12/tipsobjectinitializer/
1つ目のケースは初期化するプロパティがないので何もしない
2つ目のケースはこれと同じ意味になる
var p = new Person();
p.Name.NameText = "";
https://ufcpp.net/blog/2016/12/tipsobjectinitializer/
464デフォルトの名無しさん (ワッチョイ 52de-KeI6)
2023/05/10(水) 11:21:23.96ID:tkTpg3dz0465デフォルトの名無しさん (ブーイモ MMdb-mskx)
2023/05/10(水) 11:27:39.61ID:NYVeTygZM466デフォルトの名無しさん (ワッチョイ ff2d-vOwS)
2023/05/10(水) 11:28:45.20ID:qs6QvCEc0 Formsで独自描画はバッドノウハウに近いと思う
スケーリング考慮してないのばっかり
スケーリング考慮してないのばっかり
467デフォルトの名無しさん (ワッチョイ b74f-hGOv)
2023/05/10(水) 13:49:34.03ID:iQXLAALm0 >>465
AのコンストラクタでNameがnewされてたら問題ないわけだし使い分けでしかないね
nullableを有効化しとけばこのケースだとAのNameがnull許容でもnull非許容でも警告出してくれるよ
AのコンストラクタでNameがnewされてたら問題ないわけだし使い分けでしかないね
nullableを有効化しとけばこのケースだとAのNameがnull許容でもnull非許容でも警告出してくれるよ
468デフォルトの名無しさん (ワッチョイ c23d-Lyct)
2023/05/10(水) 14:23:44.58ID:6sAnxqBz0 C#でASP.NETでHTMLコード書くにはどこいじればいいの?
469429 (ワッチョイ 9354-ouLR)
2023/05/10(水) 17:05:27.60ID:QPN4FwhI0 私にとっての解決後も議論があったようですが、
Windows Defender を無効化 ( Windows Defender の [除外] に、コピー先フォルダを登録する ) してから、1回も発生していません。
for(int i = 0; i < 100; i++){}
での 100回ループテストを何度か行っても発生していないので、自分の中では解決済みになっています。
Windows Defender を無効化 ( Windows Defender の [除外] に、コピー先フォルダを登録する ) してから、1回も発生していません。
for(int i = 0; i < 100; i++){}
での 100回ループテストを何度か行っても発生していないので、自分の中では解決済みになっています。
470デフォルトの名無しさん (ササクッテロル Spc7-Z7Ea)
2023/05/10(水) 18:11:17.94ID:rAs2Y7NDp ファイル内容変更したからウイルスチェックが走ってんじゃん
ってオチかよw
ってオチかよw
471デフォルトの名無しさん (ワッチョイ 1610-tcUg)
2023/05/10(水) 18:54:24.51ID:6aE3wdSe0 オチかよも何も、最初からそういう話だったのに
DisposeがちゃんとやってないんだろとかOSの遅延がうんたらとか頭でっかちが騒いでるだけやで
DisposeがちゃんとやってないんだろとかOSの遅延がうんたらとか頭でっかちが騒いでるだけやで
472デフォルトの名無しさん (ワッチョイ 4679-jUDw)
2023/05/10(水) 18:59:46.60ID:KHK6MiQv0 asyncawaitってスレッドセーフのメソッドじゃなくても使っていんだっけ?
473デフォルトの名無しさん (アウアウウー Sac3-16n5)
2023/05/10(水) 19:16:24.65ID:PlKEk/pSa >>456で結論書いてやったのにまだやってたのか
474デフォルトの名無しさん (ササクッテロル Spc7-Z7Ea)
2023/05/10(水) 19:57:37.80ID:n33wvc2tp475デフォルトの名無しさん (アウアウウー Sac3-16n5)
2023/05/10(水) 20:01:05.91ID:PlKEk/pSa その対症療法が唯一の治療法なんだがまだそれもわからないのかよw
476デフォルトの名無しさん (アウアウウー Sac3-16n5)
2023/05/10(水) 20:03:31.18ID:PlKEk/pSa リソースを占有できるのがそのスレッドだけではない場合
つまり今回と同様の場合だな
原因がセキュリティソフトかバックアップソフトか何かは全く関係ない
時間を置いて何度かリトライしてそれでもだめなら例外を投げる
基本中の基本だぞ?
つまり今回と同様の場合だな
原因がセキュリティソフトかバックアップソフトか何かは全く関係ない
時間を置いて何度かリトライしてそれでもだめなら例外を投げる
基本中の基本だぞ?
477429 (ワッチョイ 9354-ouLR)
2023/05/10(水) 20:19:03.60ID:QPN4FwhI0 議論再燃させて申しわけありません。
消えます。
消えます。
478デフォルトの名無しさん (ワッチョイ 4679-jUDw)
2023/05/10(水) 21:49:28.98ID:KHK6MiQv0 みんな参加できるし
いい内容だと思う
いい内容だと思う
479デフォルトの名無しさん (ワッチョイ 1610-tcUg)
2023/05/10(水) 22:26:34.42ID:6aE3wdSe0 >>1
> 議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
> 議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
480デフォルトの名無しさん (ワッチョイ ff2d-vOwS)
2023/05/10(水) 23:13:27.93ID:qs6QvCEc0481デフォルトの名無しさん (ワッチョイ ff2d-vOwS)
2023/05/10(水) 23:27:09.51ID:qs6QvCEc0 ファイル削除のことならリトライは必要だけど、今回のと関係ないね
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【STARTO ENTERTAINMENT】timelesz篠塚大輝『大きな古時計』替え歌一発ギャグ「今はもう動かない おじいさんにトドメ~♪」が波紋 [Ailuropoda melanoleuca★]
- 43歳の元NHKアナ・竹中知華、発売グラビアがランキングで堂々の1位「えぐすぎる」「素晴らしい」「もっと出して」 [muffin★]
- 【実況】博衣こよりのえちえち歌枠🧪
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- ラーメン屋「日高屋が安いせいで客が来ない!日高屋はもっと値上げしろ!」 [449534113]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【朗報】日銀植田総裁「高市さんからの要望は特になかった」 [519511584]
