!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part145
https://mevius.5ch.net/test/read.cgi/tech/1570446977/
■関連スレ
C#, C♯, C#相談室 Part95
https://mevius.5ch.net/test/read.cgi/tech/1508168482/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
・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
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
ふらっと C#,C♯,C#(初心者用) Part146
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 9f0b-Fgt1)
2019/12/11(水) 22:12:11.28ID:d09CciDz0273デフォルトの名無しさん (ワッチョイ 8201-TJkF)
2020/01/06(月) 13:04:51.24ID:78RinjQr0 >https://docs.microsoft.com/en-us/dotnet/api/system.environment.exit?view=netframework-4.8
↑ここ読んでも分からないの?
ピンポイントで教えてもらってるのに
↑ここ読んでも分からないの?
ピンポイントで教えてもらってるのに
274デフォルトの名無しさん (ワッチョイ be7c-lxBK)
2020/01/06(月) 13:17:35.30ID:jysEDvVa0 すでにコードがあるならコピペするだけじゃね?
ライセンスは知らん
ライセンスは知らん
275デフォルトの名無しさん (ワッチョイ 2252-rouQ)
2020/01/06(月) 13:54:30.86ID:vrofCXbf0276デフォルトの名無しさん (ワッチョイ 4602-71dz)
2020/01/06(月) 15:54:50.90ID:i8hCm9on0277デフォルトの名無しさん (ワッチョイ 4602-71dz)
2020/01/06(月) 15:57:32.58ID:i8hCm9on0278デフォルトの名無しさん (ワッチョイ c2ad-Cg7n)
2020/01/06(月) 16:03:27.39ID:codN4GMx0 >>277
は?
は?
279デフォルトの名無しさん (ワッチョイ 4602-71dz)
2020/01/06(月) 16:16:51.68ID:i8hCm9on0280デフォルトの名無しさん (ワッチョイ c2ad-Cg7n)
2020/01/06(月) 16:25:16.18ID:codN4GMx0 ごめんキチガイに触ってしまった
281デフォルトの名無しさん (ワッチョイ 41e8-E95m)
2020/01/06(月) 17:00:25.20ID:/c/Em2OW0 >>272
APIをラップしたクラスを作ることをお勧めする
自分でFormから作ってもいいけど文字列に合わせてウィンドウサイズを調整したり
パラメータに合わせてアイコンとかボタンを作ったりする方が面倒だと思うよ
APIをラップしたクラスを作ることをお勧めする
自分でFormから作ってもいいけど文字列に合わせてウィンドウサイズを調整したり
パラメータに合わせてアイコンとかボタンを作ったりする方が面倒だと思うよ
282デフォルトの名無しさん (オイコラミネオ MM49-Ivq/)
2020/01/06(月) 17:11:39.14ID:D3635f2eM >>272
そんなの気にしてたの最初の頃だけだったな〜
自前でフォーム作ってもアイコンとかほぼ互換にするには手間かかる
APIでも大して変わらんのでは
他でも使い回すなら手間かかるかではなく、使い勝手がいいように組める方優先
そんなの気にしてたの最初の頃だけだったな〜
自前でフォーム作ってもアイコンとかほぼ互換にするには手間かかる
APIでも大して変わらんのでは
他でも使い回すなら手間かかるかではなく、使い勝手がいいように組める方優先
283デフォルトの名無しさん (ワッチョイ 42ad-f3Fz)
2020/01/06(月) 18:34:31.97ID:HrPzlOWn0 おそらくエラー定義に拘ってる人は
元々自分で定義したらC使いの上司に
「EXIT_SUCEESSとかあるだろが二重定義するなゴラァ!」
とレビューで怒られて
「自分で定義してね♡」って書いてある公式ドキュメントが欲しいんだと思う
上司を納得させられる
元々自分で定義したらC使いの上司に
「EXIT_SUCEESSとかあるだろが二重定義するなゴラァ!」
とレビューで怒られて
「自分で定義してね♡」って書いてある公式ドキュメントが欲しいんだと思う
上司を納得させられる
284デフォルトの名無しさん (スップ Sdc2-IJNu)
2020/01/06(月) 18:39:19.67ID:kN/rUhZhd そういう話だったのになぜか途中からどこで定義するのか問題にすり替えた
どこで定義されていようが最終的には同じなのに
どこで定義されていようが最終的には同じなのに
285デフォルトの名無しさん (ワッチョイ 89ad-xMc7)
2020/01/06(月) 18:58:11.81ID:fXTekjlj0 >>272
WH_CBTをグローバルフックして表示位置を変更だな
WH_CBTをグローバルフックして表示位置を変更だな
286デフォルトの名無しさん (ワッチョイ c2ad-Cg7n)
2020/01/06(月) 19:01:20.67ID:codN4GMx0287デフォルトの名無しさん (アウアウウー Saa5-CnQr)
2020/01/06(月) 19:09:21.84ID:vUR1r/Pua >>272
自分なら自作するというかしてました。
標準のMessageBoxは使い辛いところが多いので。
(1) モーダルじゃない表示も可能
(2) カウントダウンして自動的に消える
(3) 背景だけ半透明表示可能
ついでにこんな機能付きのを作ったらどうでしょうか。
自分なら自作するというかしてました。
標準のMessageBoxは使い辛いところが多いので。
(1) モーダルじゃない表示も可能
(2) カウントダウンして自動的に消える
(3) 背景だけ半透明表示可能
ついでにこんな機能付きのを作ったらどうでしょうか。
288デフォルトの名無しさん (ワッチョイ 4602-71dz)
2020/01/06(月) 19:12:29.35ID:i8hCm9on0289デフォルトの名無しさん (ワッチョイ 49a7-HDsw)
2020/01/06(月) 19:19:01.72ID:NtfTHL6y0 たかが終了コードの何を想定してるの?
290デフォルトの名無しさん (ワッチョイ ed0c-UAPS)
2020/01/06(月) 19:38:09.46ID:k52Bb7eZ0 わかった、話をまとめよう
Q. 定義済みのリターンコード無いの?
A. 無い
では次の方どぞ〜
Q. 定義済みのリターンコード無いの?
A. 無い
では次の方どぞ〜
291デフォルトの名無しさん (ワッチョイ 42ad-f3Fz)
2020/01/06(月) 19:43:24.53ID:HrPzlOWn0 >>286
システムエラーコードとアプリケーションエラーコードがごっちゃに書いてあるのが混乱の元な気がしてきた
"In your application, you can define your own error codes in an enumeration, and return the appropriate error code based on the scenario"
canが弱く見えるのでは
「C#はヘッダファイルとかないから各自自分で定義するように!」くらいあると
そっから飛べる先に
https://docs.microsoft.com/en-us/windows/win32/debug/system-error-codes--0-499-
とかがあってさも定数があるかのように見えるのも混乱のもとかと
まあ"use a non-zero number to indicate an error"と書くなら最低ゼロくらいは定義しといてくれというのはわからんでもない
システムエラーコードとアプリケーションエラーコードがごっちゃに書いてあるのが混乱の元な気がしてきた
"In your application, you can define your own error codes in an enumeration, and return the appropriate error code based on the scenario"
canが弱く見えるのでは
「C#はヘッダファイルとかないから各自自分で定義するように!」くらいあると
そっから飛べる先に
https://docs.microsoft.com/en-us/windows/win32/debug/system-error-codes--0-499-
とかがあってさも定数があるかのように見えるのも混乱のもとかと
まあ"use a non-zero number to indicate an error"と書くなら最低ゼロくらいは定義しといてくれというのはわからんでもない
292デフォルトの名無しさん (ワッチョイ c2ad-Cg7n)
2020/01/06(月) 19:43:37.98ID:codN4GMx0 >>288
処理系で定義?????
処理系で定義?????
293デフォルトの名無しさん (ワッチョイ c2ad-Cg7n)
2020/01/06(月) 19:44:51.56ID:codN4GMx0 >>291
別に定義しなくてもいいからcanなんでしょ
別に定義しなくてもいいからcanなんでしょ
294デフォルトの名無しさん (ワッチョイ 027d-UAPS)
2020/01/06(月) 20:48:06.04ID:2EPFHDaI0 コンソールはスレッドセーフなのため?
マルチスレッドで文字出す
そしてもエラーがおきないか?安全か?
マルチスレッドで文字出す
そしてもエラーがおきないか?安全か?
295デフォルトの名無しさん (ワッチョイ 89ad-G+Sj)
2020/01/06(月) 20:52:31.08ID:fXTekjlj0 >>294
いけぬま?
いけぬま?
296デフォルトの名無しさん (オッペケ Srf1-jmyp)
2020/01/06(月) 21:01:18.24ID:3fXeZgESr 処理系で想像してる粒度が違う気がするけど
.NET Frameworkとしては定義されてるものは無いで終わりだろ
.NET Frameworkとしては定義されてるものは無いで終わりだろ
297デフォルトの名無しさん (ワッチョイ 8201-TJkF)
2020/01/06(月) 21:31:26.23ID:78RinjQr0 >>291
その混乱は99.9%読み手の問題
その混乱は99.9%読み手の問題
298デフォルトの名無しさん (アウアウウー Saa5-qQU+)
2020/01/06(月) 22:48:28.16ID:mEVq710ia お前らC#でWebサーバー建てたことありますか?
変な案件やらされそうで新年早々ウツ
変な案件やらされそうで新年早々ウツ
299デフォルトの名無しさん (ワッチョイ c263-rB7U)
2020/01/06(月) 22:51:30.20ID:z7GoHnb80 >>298
さすがにやったことないな
ググッたら前例はあった
https://www.c-sharpcorner.com/article/creating-your-own-web-server-using-C-Sharp/
さすがにやったことないな
ググッたら前例はあった
https://www.c-sharpcorner.com/article/creating-your-own-web-server-using-C-Sharp/
300デフォルトの名無しさん (ワッチョイ c2ad-Cg7n)
2020/01/06(月) 22:54:19.72ID:codN4GMx0 >>298
Kestrelじゃなくて?
Kestrelじゃなくて?
301デフォルトの名無しさん (ワッチョイ c259-E95m)
2020/01/06(月) 23:07:18.60ID:D2EGtjEk0302デフォルトの名無しさん (ワッチョイ 7197-IH4P)
2020/01/06(月) 23:14:02.24ID:v3NiRowX0 >>301
地道に宣言するにしても、Dictionaryに地道に値を入れていく以外に簡単に生成できる方法がある
(テキストから読み込むとか、keyとvalueが同一でよい)のなら、一旦Dictionaryを作って
そこからC#のコードを文字列処理で生成してソースコードにコピペとかすると楽だよ。
C#コードの生成はもちろんC#以外の言語でもなんでもいいから慣れてる言語でやればいいし。
地道に宣言するにしても、Dictionaryに地道に値を入れていく以外に簡単に生成できる方法がある
(テキストから読み込むとか、keyとvalueが同一でよい)のなら、一旦Dictionaryを作って
そこからC#のコードを文字列処理で生成してソースコードにコピペとかすると楽だよ。
C#コードの生成はもちろんC#以外の言語でもなんでもいいから慣れてる言語でやればいいし。
303デフォルトの名無しさん (ワッチョイ e179-E95m)
2020/01/06(月) 23:14:03.88ID:YSZbxSNB0 >>301
日本語の意味が取れないからどういうのを想定してるか具体例を書いてくれ
日本語の意味が取れないからどういうのを想定してるか具体例を書いてくれ
304デフォルトの名無しさん (ワッチョイ 8201-TJkF)
2020/01/06(月) 23:22:52.50ID:78RinjQr0 constでコンパイル時に解決したいというのでなければリソースファイルを使う
305デフォルトの名無しさん (ワッチョイ 422c-RM0q)
2020/01/06(月) 23:58:53.91ID:jMeFAWx00 どうせ戻り値は、4バイト整数だろ
signed int, -2,147,483,648 〜 2,147,483,647
unsigned int, 0 〜 4,294,967,295
システムが、0 〜 1,073,741,823
カスタムが、1,073,741,824 〜 2,147,483,647
の範囲を使うとして、
ひとまずカスタムは、1,073,742,000 〜 1,610,612,000 の範囲を使っておけばよい
signed int, -2,147,483,648 〜 2,147,483,647
unsigned int, 0 〜 4,294,967,295
システムが、0 〜 1,073,741,823
カスタムが、1,073,741,824 〜 2,147,483,647
の範囲を使うとして、
ひとまずカスタムは、1,073,742,000 〜 1,610,612,000 の範囲を使っておけばよい
306デフォルトの名無しさん (ワッチョイ e563-IJNu)
2020/01/07(火) 00:06:26.34ID:W22n+t+k0 処理系が正確に何指してるか不明ではあるが.NETのバージョンとかコンパイラのバージョンだったとして…
それ更新したら普通バージョン上げないの?
ソースコード変わってないからビルド番号しか上げない、みたいな運用聞いたこと無いけど…
乗っかってる大元を変えるって結構大きな変更だからコードの変更が一切不要でも念の為リビジョンなりバージョンなり上げない?
それ更新したら普通バージョン上げないの?
ソースコード変わってないからビルド番号しか上げない、みたいな運用聞いたこと無いけど…
乗っかってる大元を変えるって結構大きな変更だからコードの変更が一切不要でも念の為リビジョンなりバージョンなり上げない?
307デフォルトの名無しさん (ワッチョイ 4224-UAPS)
2020/01/07(火) 08:52:49.60ID:xOWyMMFH0 htmlファイルをディスク上に作らずに、こちらのプログラム上で仮想生成したhtmlをWindows規定のブラウザで開かせる方法ってないでしょうか?
ウインドウメッセージなどでデータを送りつける等の方法があれば良いのですが
ウインドウメッセージなどでデータを送りつける等の方法があれば良いのですが
308デフォルトの名無しさん (ワッチョイ 7133-988m)
2020/01/07(火) 09:00:28.70ID:JXhmELVL0 詐欺請求マルウェアかよw
309デフォルトの名無しさん (ワッチョイ 4224-UAPS)
2020/01/07(火) 10:01:00.59ID:xOWyMMFH0 すみません、解決しました
ブラウザの対応次第なものの一般的なブラウザであればdata Urlで簡単に実現できました
ブラウザの対応次第なものの一般的なブラウザであればdata Urlで簡単に実現できました
310デフォルトの名無しさん (アウウィフ FFa5-p4uH)
2020/01/07(火) 16:12:15.29ID:2Dq0zKSWF おまいら printf の戻り値はちゃんと毎回確認するんだぞ判ったか
311デフォルトの名無しさん (ワッチョイ 9901-8/Ff)
2020/01/07(火) 17:16:35.91ID:PuPIfAOU0 お断りします。
312デフォルトの名無しさん (ワッチョイ e5ae-W/+2)
2020/01/07(火) 17:27:42.26ID:Tv0SPXaP0 Excelによる計算をマスターとした場合、
C#で浮動小数点の誤差まで再現するには、どうしたら良いのでしょうか?
floatやdoubleやdecimalをそのまま使うだけでは、完全一致はしないですよね?
C#で浮動小数点の誤差まで再現するには、どうしたら良いのでしょうか?
floatやdoubleやdecimalをそのまま使うだけでは、完全一致はしないですよね?
313デフォルトの名無しさん (ワッチョイ 317b-I5PR)
2020/01/07(火) 17:39:13.63ID:wDqVPTN90314デフォルトの名無しさん (オッペケ Srf1-Fu3+)
2020/01/07(火) 17:51:56.04ID:zRb5T0D/r そもそものそのエクセルの計算が税法上問題なかったり物理学上の誤差などを
しっかり配慮された計算なのか?とう疑問がある
しっかり配慮された計算なのか?とう疑問がある
315デフォルトの名無しさん (ワッチョイ e5ae-W/+2)
2020/01/07(火) 18:25:35.96ID:Tv0SPXaP0 >>313
はい、Excelの計算誤差も含めてC#で再現したいのです
Excel固有の関数の再現では無く、除算乗算程度です
>>314
Excelは簡単な計算でも誤差が出る時があるのは理解していますが、それでもExceによる計算結果lを「神様」として完全一致させるのが理想です
https://docs.microsoft.com/ja-jp/office/troubleshoot/excel/floating-point-arithmetic-inaccurate-result
https://answers.microsoft.com/ja-jp/office/forum/office_2013_release-excel/excel%E3%81%AE%E5%8D%98%E7%B4%94%E3%81%AA%E8%A8%88/e5421c34-8053-4132-a0a6-14729e505376
はい、Excelの計算誤差も含めてC#で再現したいのです
Excel固有の関数の再現では無く、除算乗算程度です
>>314
Excelは簡単な計算でも誤差が出る時があるのは理解していますが、それでもExceによる計算結果lを「神様」として完全一致させるのが理想です
https://docs.microsoft.com/ja-jp/office/troubleshoot/excel/floating-point-arithmetic-inaccurate-result
https://answers.microsoft.com/ja-jp/office/forum/office_2013_release-excel/excel%E3%81%AE%E5%8D%98%E7%B4%94%E3%81%AA%E8%A8%88/e5421c34-8053-4132-a0a6-14729e505376
316デフォルトの名無しさん (ワッチョイ d188-IJNu)
2020/01/07(火) 18:30:52.77ID:RhWBTAz60 内部でexcel操作するライブラリを使って実際にexcelに計算させてその結果をもらう
って方式じゃだめかな?
何にせよ絶対関わりたくない要求仕様だなw
って方式じゃだめかな?
何にせよ絶対関わりたくない要求仕様だなw
317デフォルトの名無しさん (ワッチョイ 8201-TJkF)
2020/01/07(火) 18:36:18.00ID:sMehhi+20318デフォルトの名無しさん (ワッチョイ e5ae-W/+2)
2020/01/07(火) 18:59:31.78ID:Tv0SPXaP0319デフォルトの名無しさん (ワッチョイ ed0c-UAPS)
2020/01/07(火) 19:04:39.58ID:EurMb9rX0 一体どんなアホが集まればそんなふざけた案件が出来上がるんだ…
320デフォルトの名無しさん (スップ Sdc2-Cg7n)
2020/01/07(火) 19:18:53.11ID:OMl1FHHvd >>318
EPPlusやClosedXMLなら、Excelがマシンにインストールされている必要はないやろ
EPPlusやClosedXMLなら、Excelがマシンにインストールされている必要はないやろ
321デフォルトの名無しさん (アウアウウー Saa5-pIXJ)
2020/01/07(火) 20:18:05.17ID:cpbbTuYka これはC#じゃなくて、CやC++に言えることかもしれませんが、
List<int> test=new List<int>();
for(int i=0; i<100000000; i++)
test.Add(123456789);
このような膨大な要素のリストを作った場合でも、
プログラムが動くのは、変数はメモリではなくHDD領域に格納されているからでしょうか?
メモリに全て格納すれば、メモリ不足でプログラムは動きませんよね?
List<int> test=new List<int>();
for(int i=0; i<100000000; i++)
test.Add(123456789);
このような膨大な要素のリストを作った場合でも、
プログラムが動くのは、変数はメモリではなくHDD領域に格納されているからでしょうか?
メモリに全て格納すれば、メモリ不足でプログラムは動きませんよね?
322デフォルトの名無しさん (アウアウウー Saa5-CnQr)
2020/01/07(火) 20:25:58.17ID:IHn/p+8Ca323デフォルトの名無しさん (ワッチョイ 2252-rouQ)
2020/01/07(火) 20:26:35.52ID:YKIaA9us0 >>321
仮想メモリでググってみな
仮想メモリでググってみな
324デフォルトの名無しさん (ワッチョイ c22c-lxBK)
2020/01/07(火) 20:27:46.08ID:+2sDQ8Ye0 今どき400MBぐらい物理メモリにのっけてもそこまでって感じだけど
仮想メモリで調べよう
仮想メモリで調べよう
325デフォルトの名無しさん (ワッチョイ adda-eJH9)
2020/01/07(火) 20:28:50.54ID:23MsATD60 >>321
10000000/1024/1024=95.36
95.36*4=381MB
まぁ今のPCスペックじゃ余裕じゃね。
ある時、テンプレートで消費されるメモリの方が格納データより多くなる
どこに限界があるか自分で計ってみなされ
10000000/1024/1024=95.36
95.36*4=381MB
まぁ今のPCスペックじゃ余裕じゃね。
ある時、テンプレートで消費されるメモリの方が格納データより多くなる
どこに限界があるか自分で計ってみなされ
326デフォルトの名無しさん (ワッチョイ 2252-rouQ)
2020/01/07(火) 20:33:16.30ID:YKIaA9us0 >>322
C++でアプリ作ったときは浮動小数点制御ワードの設定次第で、演算の精度や丸め方向が変わって演算結果に差異が出たけど、C#やexcelではどうなんだろう? 同じ条件で決めうちなのかな?
C++でアプリ作ったときは浮動小数点制御ワードの設定次第で、演算の精度や丸め方向が変わって演算結果に差異が出たけど、C#やexcelではどうなんだろう? 同じ条件で決めうちなのかな?
327デフォルトの名無しさん (ワッチョイ 5f9b-Eg5K)
2020/01/08(水) 16:03:59.03ID:Sre2vN3k0 google spreadsheet とか ms office online とか 360 でも再現されるのかな
328デフォルトの名無しさん (ワッチョイ 5f7d-tgR8)
2020/01/10(金) 02:04:40.36ID:aPGnNlsf0 非同期メソッド(async/await)の必要性について教えてください。
Task.RunやTask.Factory.StartNewメソッドを使えば、タスクを別スレッドで生成・実行できると思います。
またこれらのメソッドによる戻り値を呼び出し側で使いたければ、Task<TResult>クラスのResultプロパティを利用してやればよいと思います。
となると、上記のメソッドと比べ、非同期メソッド(async/await)の必要性や有用性って何なんでしょうか?
Task.RunやTask.Factory.StartNewメソッドを使えば、タスクを別スレッドで生成・実行できると思います。
またこれらのメソッドによる戻り値を呼び出し側で使いたければ、Task<TResult>クラスのResultプロパティを利用してやればよいと思います。
となると、上記のメソッドと比べ、非同期メソッド(async/await)の必要性や有用性って何なんでしょうか?
329デフォルトの名無しさん (アウアウウー Saa3-7oRq)
2020/01/10(金) 03:15:36.39ID:doMNh/YUa >>328
この記事読めば最初の10分でわかるよ
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/app/masterasync_index.html
分からなかったらここで人に聞いてもたぶん納得するような解答は得られないと思う
その場合は諦めて下さいw
この記事読めば最初の10分でわかるよ
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/app/masterasync_index.html
分からなかったらここで人に聞いてもたぶん納得するような解答は得られないと思う
その場合は諦めて下さいw
330デフォルトの名無しさん (ワッチョイ 5fde-Eq4u)
2020/01/10(金) 07:14:44.82ID:1LguP2Z50 読めば読むほどDoEvents大勝利の予感!
331デフォルトの名無しさん (ワッチョイ df01-eaUz)
2020/01/10(金) 17:27:42.50ID:D+gtbuRW0 弊社は庶務おばちゃんのPCですら64bitでメモリ8GB
332デフォルトの名無しさん (ワッチョイ 7f79-G18V)
2020/01/10(金) 17:40:13.71ID:g1glT3r10 >>331
どこから誤爆したのか知らんが10年前の話でもしてたのか?
どこから誤爆したのか知らんが10年前の話でもしてたのか?
333デフォルトの名無しさん (ワッチョイ df2d-guBg)
2020/01/10(金) 21:01:49.43ID:kvQnOJve0 本当はここの話題じゃないのかも知れないけどさあ
.NetCoreアプリ(〜.dllファイル)に対するAppArmorの設定ってどうやるのか解説してるサイトや書籍があったら教えてくれんかな?
dotnetコマンドに対する制約しかかけられないのかな・・・・
.NetCoreアプリ(〜.dllファイル)に対するAppArmorの設定ってどうやるのか解説してるサイトや書籍があったら教えてくれんかな?
dotnetコマンドに対する制約しかかけられないのかな・・・・
334デフォルトの名無しさん (ワッチョイ 7f2c-JQ6m)
2020/01/10(金) 21:14:00.77ID:PkgwRlbI0 >>328
async/await で書くと、深いネストのコールバック地獄を避けられるw
async/await で書くと、深いネストのコールバック地獄を避けられるw
335デフォルトの名無しさん (ワッチョイ ffe3-G18V)
2020/01/10(金) 21:38:12.63ID:pVxCiE3h0 >>334
むしろasync/await地獄の始まりなんじゃ
むしろasync/await地獄の始まりなんじゃ
336デフォルトの名無しさん (ワッチョイ df35-e1y7)
2020/01/10(金) 21:46:24.01ID:nE2xZxkX0 >>335
kwsk
kwsk
337デフォルトの名無しさん (ワッチョイ 5fda-KD25)
2020/01/10(金) 21:48:34.84ID:aX6A99t20 >>335
KWSK
KWSK
338デフォルトの名無しさん (ワッチョイ 7fad-tNwm)
2020/01/10(金) 23:13:19.94ID:zSF+N+820 >>328
ブロッキングすんなよ…
ブロッキングすんなよ…
339デフォルトの名無しさん (ワッチョイ df4f-lB9F)
2020/01/10(金) 23:16:57.47ID:c4Cc7glv0 コールバック地獄のネストがasync/awaitで解消されるわけじゃないんだがな。
340デフォルトの名無しさん (ワッチョイ df35-e1y7)
2020/01/10(金) 23:25:42.90ID:nE2xZxkX0 >>339
なんで?
なんで?
341デフォルトの名無しさん (ワッチョイ df4f-lB9F)
2020/01/10(金) 23:40:56.46ID:c4Cc7glv0 コールバック引数に関数リテラルを書いてるからネストが深くなるわけで、それが嫌なら
関数を切り出しておけばいい。
async/awaitを使う場合は最初からそうするしかないってだけ。
関数を切り出しておけばいい。
async/awaitを使う場合は最初からそうするしかないってだけ。
342デフォルトの名無しさん (ワッチョイ df35-sGtB)
2020/01/10(金) 23:45:01.53ID:nE2xZxkX0 まあ逐一処理みたいに並べて書けるから便利だよね。
別の場所に用意したコールバック関数の中に次の処理書くよりマシかな
別の場所に用意したコールバック関数の中に次の処理書くよりマシかな
343デフォルトの名無しさん (ワッチョイ df4f-lB9F)
2020/01/10(金) 23:48:54.52ID:c4Cc7glv0 あれ、ここc#スレじゃんw
344デフォルトの名無しさん (ワッチョイ df35-sGtB)
2020/01/10(金) 23:51:08.53ID:nE2xZxkX0 いや、こうか。
そうしないとコールバックで繋いでないな。
f1(x1,y1,
f2(x2,y2,
f3(x3,y3,
f4(x4,y3)
)
)
)
そうしないとコールバックで繋いでないな。
f1(x1,y1,
f2(x2,y2,
f3(x3,y3,
f4(x4,y3)
)
)
)
345デフォルトの名無しさん (ブーイモ MM23-WKbt)
2020/01/11(土) 00:43:53.19ID:HNDaLABiM 目次見る限りasync/awaitまで書いてあるようだが内容古いかな?
C#による マルチコアのための非同期/並列処理プログラミング
http://gihyo.jp/book/2013/978-4-7741-5828-0
C#による マルチコアのための非同期/並列処理プログラミング
http://gihyo.jp/book/2013/978-4-7741-5828-0
346デフォルトの名無しさん (ワッチョイ 7f24-lB9F)
2020/01/11(土) 10:39:28.88ID:LYbiGn3M0 C#で明示的にメモリを開放する手段はGC.Collect以外にはないんでしょうか?
画像やオーディオファイルを扱うアプリを作っている最中ですが、数百MBのデータを扱い終えても数分はメモリ使用量がそのままで少し気持ち悪いです
GC.Collectを行うと副作用も色々とあるようなので他に手段があればと
画像やオーディオファイルを扱うアプリを作っている最中ですが、数百MBのデータを扱い終えても数分はメモリ使用量がそのままで少し気持ち悪いです
GC.Collectを行うと副作用も色々とあるようなので他に手段があればと
347デフォルトの名無しさん (ワッチョイ df4f-lB9F)
2020/01/11(土) 10:49:45.29ID:W2txbHVT0348デフォルトの名無しさん (ワッチョイ 5f7d-vCMi)
2020/01/11(土) 11:09:15.66ID:UtksiWPF0 async/awaitの件解決しました。
ありがとうございました!
ありがとうございました!
349デフォルトの名無しさん (ワッチョイ dfa7-Eq4u)
2020/01/11(土) 11:28:43.37ID:TUd4PMk40 DoEvents最強!
350デフォルトの名無しさん (ワッチョイ df35-e1y7)
2020/01/11(土) 11:44:58.26ID:tdQ2h9sk0 >>347
普通にミスった
関数ポインタ的なものを渡してるつもりだったけど実行演算子付けてたら意味ないな
f1(x1,y1,(y1,y2)=>
f2(x2,y2,(x3,y3)=>
f3(x3,y3,(x4,y4)=>
f4(x4,y4)
)
)
)
多分こうかな
やっぱりこのほうがいいな
そもそもこんなに非同期処理並べるときあるか分からないけど
await f1(x1,y1)
await f2(x2,y2)
await f3(x3,y3)
f4(x4,y4)
普通にミスった
関数ポインタ的なものを渡してるつもりだったけど実行演算子付けてたら意味ないな
f1(x1,y1,(y1,y2)=>
f2(x2,y2,(x3,y3)=>
f3(x3,y3,(x4,y4)=>
f4(x4,y4)
)
)
)
多分こうかな
やっぱりこのほうがいいな
そもそもこんなに非同期処理並べるときあるか分からないけど
await f1(x1,y1)
await f2(x2,y2)
await f3(x3,y3)
f4(x4,y4)
351デフォルトの名無しさん (ワッチョイ df4f-lB9F)
2020/01/11(土) 11:58:16.27ID:W2txbHVT0 それ、非同期ラムダならawaitで待つけど普通のラムダなら普通に呼ぶだけだろう。
awaitで解消できるわけじゃなくて。
awaitで解消できるわけじゃなくて。
352デフォルトの名無しさん (ワッチョイ df35-e1y7)
2020/01/11(土) 12:03:26.24ID:tdQ2h9sk0 こうか
f1(x1,y1,async (y1,y2)=>
await f2(x2,y2,async (x3,y3)=>
await f3(x3,y3,async (x4,y4)=>
f4(x4,y4)
)
)
)
f1(x1,y1,async (y1,y2)=>
await f2(x2,y2,async (x3,y3)=>
await f3(x3,y3,async (x4,y4)=>
f4(x4,y4)
)
)
)
353デフォルトの名無しさん (ワッチョイ df35-e1y7)
2020/01/11(土) 12:04:51.20ID:tdQ2h9sk0 いや、これだとasync, await使ってるから本末転倒やな
もう時間ない
もう時間ない
354デフォルトの名無しさん (ワッチョイ 5f0c-lB9F)
2020/01/11(土) 12:28:03.20ID:yg8EbsDw0 >>346
> GC.Collectを行うと副作用も色々とある
あくまで一般的な方針ってだけなので別に自分のアプリで問題(望ましくない時にスパイクを起こすとか)無ければ好きに呼べば良いよ
別にイリーガルなAPIというわけでもない
まあ一般的な話で言えば「メモリ残っててなんか気持ち悪い」程度の理由で呼ぶ必要はまったくないが
> GC.Collectを行うと副作用も色々とある
あくまで一般的な方針ってだけなので別に自分のアプリで問題(望ましくない時にスパイクを起こすとか)無ければ好きに呼べば良いよ
別にイリーガルなAPIというわけでもない
まあ一般的な話で言えば「メモリ残っててなんか気持ち悪い」程度の理由で呼ぶ必要はまったくないが
355デフォルトの名無しさん (ラクッペ MMf3-elwi)
2020/01/11(土) 12:48:55.66ID:iMRI2zWpM >>350のコールバックが非同期で呼び出されるってことだろうから普通に並べて呼ぶだけじゃ無理じゃね
356デフォルトの名無しさん (ワッチョイ 7f24-lB9F)
2020/01/12(日) 10:53:37.47ID:dSru1J0h0 >>354
たしかに基本的には問題になりませんが、
数GBを消費することもあり、もしそのときに使用者が他に重いプログラムを起動するなどするとメモリ不足になる場合もあるかなと・・・
こういうプログラムはGC任せにするのではなくC++などで作るべきという結論になるんでしょうか?
たしかに基本的には問題になりませんが、
数GBを消費することもあり、もしそのときに使用者が他に重いプログラムを起動するなどするとメモリ不足になる場合もあるかなと・・・
こういうプログラムはGC任せにするのではなくC++などで作るべきという結論になるんでしょうか?
357デフォルトの名無しさん (ワッチョイ 7f52-4RSc)
2020/01/12(日) 11:39:38.30ID:hca/fTZV0 >>356
仮想メモリでググってみて
仮想メモリでググってみて
358デフォルトの名無しさん (ワッチョイ df4f-lB9F)
2020/01/12(日) 12:06:08.27ID:EKUpo6h10 >>346
IDisposableなオブジェクトがあれば不要になった時点できちんとDispose()するようにするとかかな。
画像を扱っているんであればSystem.Drawing.Imageとかいろいろあるんでは。
IDisposableなオブジェクトがあれば不要になった時点できちんとDispose()するようにするとかかな。
画像を扱っているんであればSystem.Drawing.Imageとかいろいろあるんでは。
359デフォルトの名無しさん (ワッチョイ 5fda-KD25)
2020/01/12(日) 12:10:08.97ID:VFqe+WSm0 usingで囲むのが定石かな?
360デフォルトの名無しさん (ワッチョイ 7f24-lB9F)
2020/01/12(日) 12:28:05.83ID:dSru1J0h0 主にはMemoryStreamで巨大データを扱っていてちゃんとDisposeは行っていますが、タスクマネージャーで監視している限りだと中々メモリ使用量が減りません
361デフォルトの名無しさん (ワッチョイ 5f0c-lB9F)
2020/01/12(日) 12:32:04.56ID:21O0ncu50 >>356
その消費されているメモリがどのメモリなのかきちんと把握しないと意味がないよ
マネージドメモリが消費されればそれだけ手動でCollectせずともGCは働くはず
なのに残っているとしたらstatic変数等で無駄に参照し続けている可能性がある
アンマネージドなメモリなら既に書かれてる通りDisposeを必要な場面で呼び出していない可能性がある
加えてGC性能の観点からはDispose(正確にはファイナライザの方だけど)をGC任せにするのは
程度問題ではあるけど基本的にはご法度
現状「メモリが大量に消費されているが手動でCollectして大丈夫か」の情報だけでは現状方針は立てようがない
その消費されているメモリがどのメモリなのかきちんと把握しないと意味がないよ
マネージドメモリが消費されればそれだけ手動でCollectせずともGCは働くはず
なのに残っているとしたらstatic変数等で無駄に参照し続けている可能性がある
アンマネージドなメモリなら既に書かれてる通りDisposeを必要な場面で呼び出していない可能性がある
加えてGC性能の観点からはDispose(正確にはファイナライザの方だけど)をGC任せにするのは
程度問題ではあるけど基本的にはご法度
現状「メモリが大量に消費されているが手動でCollectして大丈夫か」の情報だけでは現状方針は立てようがない
362デフォルトの名無しさん (ワッチョイ 7f24-lB9F)
2020/01/12(日) 12:37:20.88ID:dSru1J0h0 >>361
一応上でも書きましたがメモリリークの相談ではありません
一応上でも書きましたがメモリリークの相談ではありません
363デフォルトの名無しさん (ワッチョイ 5f0c-lB9F)
2020/01/12(日) 12:52:17.43ID:21O0ncu50364デフォルトの名無しさん (ワッチョイ 7f24-lB9F)
2020/01/12(日) 13:07:52.95ID:dSru1J0h0 >>363
言葉足らずでしたが、Dispose処理を行ったであろうタイミングで減らないというだけであって待つなりそこでCG.Collectを行えばちゃんと解放はされます
ただ上でも言ったようにGC.Collectは副作用があるようなのでC++のdeleteのようなものは無いのかなと
言葉足らずでしたが、Dispose処理を行ったであろうタイミングで減らないというだけであって待つなりそこでCG.Collectを行えばちゃんと解放はされます
ただ上でも言ったようにGC.Collectは副作用があるようなのでC++のdeleteのようなものは無いのかなと
365デフォルトの名無しさん (ワッチョイ 5fde-Eq4u)
2020/01/12(日) 13:49:29.53ID:GXqrVy4G0 GCって動かしてやらないと限界まで解放しないよ
限界までいって開放時のその時起きるのはストップザ・ワールドと呼ばれる有名な現象
その前にもメモリの残量を見てるアプリが動かなくなる
あ、メモリ少ないじゃん俺起動やめんべ
こういうのも絡んで再現不能な不具合を多々撒き散らす
常駐アプリならストップザ・ワールドが困るなら定期的に解放せんとまずい
ちなみにストップザ・ワールドは10分は動かなかったときがある
限界までいって開放時のその時起きるのはストップザ・ワールドと呼ばれる有名な現象
その前にもメモリの残量を見てるアプリが動かなくなる
あ、メモリ少ないじゃん俺起動やめんべ
こういうのも絡んで再現不能な不具合を多々撒き散らす
常駐アプリならストップザ・ワールドが困るなら定期的に解放せんとまずい
ちなみにストップザ・ワールドは10分は動かなかったときがある
366デフォルトの名無しさん (ワッチョイ 5f0c-lB9F)
2020/01/12(日) 13:50:45.08ID:21O0ncu50 >>364
まあ生存しているマネージドメモリの正体がわかり切っていて処理の途中でも無いなら
(例えば単純にユーザー操作からファイルの読み込みが完了して結果が表示された後とか)
それはCollect使っても構わない場面だと思うよ
結局副作用と言ってもヒューリスティックなGCの調整に影響が出て
細かくGCが起きる場面でのスループットが低下する、かもしれない
とかその程度だしね
まあ生存しているマネージドメモリの正体がわかり切っていて処理の途中でも無いなら
(例えば単純にユーザー操作からファイルの読み込みが完了して結果が表示された後とか)
それはCollect使っても構わない場面だと思うよ
結局副作用と言ってもヒューリスティックなGCの調整に影響が出て
細かくGCが起きる場面でのスループットが低下する、かもしれない
とかその程度だしね
367デフォルトの名無しさん (ドコグロ MM7f-JyDu)
2020/01/12(日) 13:53:55.26ID:F6k+/xNLM サーバーじゃなくてクライアントアプリだろ?
ガンガンGC.Collect打っても全然問題ないよ
ガンガンGC.Collect打っても全然問題ないよ
368デフォルトの名無しさん (ワッチョイ 5f5f-alJZ)
2020/01/12(日) 13:54:13.68ID:yOfvFL1A0369デフォルトの名無しさん (ワッチョイ 5fde-Eq4u)
2020/01/12(日) 14:00:58.90ID:GXqrVy4G0370デフォルトの名無しさん (ブーイモ MM0f-2EI0)
2020/01/12(日) 14:21:33.28ID:EstEf4vMM >>364
大きなメモリブロックを頻繁に扱うならアンマネージドメモリを使いなよ
アンマネージドメモリなら開放したいときに無駄なく開放できる
今はspanがあるからアンマネージドメモリの扱いも簡単だ
GCの手動実行は開放したいメモリ以外にもマークアンドスイープが発生しちゃうから効率が悪い
ちなみにMemoryStream.Disposeはインターフェース共通化のために実装してあるだけで呼び出す意味はない
大きなメモリブロックを頻繁に扱うならアンマネージドメモリを使いなよ
アンマネージドメモリなら開放したいときに無駄なく開放できる
今はspanがあるからアンマネージドメモリの扱いも簡単だ
GCの手動実行は開放したいメモリ以外にもマークアンドスイープが発生しちゃうから効率が悪い
ちなみにMemoryStream.Disposeはインターフェース共通化のために実装してあるだけで呼び出す意味はない
371デフォルトの名無しさん (ワッチョイ 7fad-tNwm)
2020/01/12(日) 14:32:31.87ID:fMqCO5na0 逆に10分止めちゃうようなコードを見てみたい
372デフォルトの名無しさん (ワッチョイ 5f63-hsX7)
2020/01/12(日) 14:39:35.43ID:OVUZbrRA0 GCが分単位でかかる状況ってそもそも作り出せるもの?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 東京都「都民の税金1.5兆円が国に奪われている」「全国に分配されている」に地方民ブチギレ [Hitzeschleier★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 [蚤の市★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★4 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- トランプ、G7に代わるcore 5を発表 [805596214]
- はいはい
- 不眠症あるあるだけど眠たすぎて体調が良くない
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★5
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
