ふらっと C#,C♯,C#(初心者用) Part142

■ このスレッドは過去ログ倉庫に格納されています
2019/03/07(木) 06:35:41.12ID:6L3KEJfe0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■関連スレ
C#, C♯, C#相談室 Part93
http://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part141
http://mevius.5ch.net/test/read.cgi/tech/1544839627/
■コードを貼る場合は↓を使いましょう。
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/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2019/05/05(日) 18:34:49.31ID:Q2loWuJOM
>>712
実務で使ったことないんだろ
黙っとけや

自分だけの小さなアプリしか作ったことないんだろ
2019/05/05(日) 18:37:30.50ID:IBoHsNppa
>>713
もう無理だよ笑わせないでw
もっともパフォーマンスの良いミューテックスwwwwwww
実務で使ったことないだろwww
学生さんですかwwww
2019/05/05(日) 18:38:33.24ID:Q2loWuJOM
5分で確認できることをできない老害
716デフォルトの名無しさん (ワッチョイ f72d-/hjB)
垢版 |
2019/05/05(日) 18:41:05.51ID:1Pm7tIcB0
Mutexはロックがいらないスレッド同士でもロックしちゃうのが使いづらいな
回避できるのかはしらんが
2019/05/05(日) 18:41:10.65ID:Q2loWuJOM
そもそもスレッドがとまると言ってるけどCPUのスレッドと.netのスレッド混同してそう
2019/05/05(日) 18:41:50.97ID:Q2loWuJOM
> でもロックしちゃうと問答無用でCPUが何もせずに止まっちゃう

これ笑う所?
2019/05/05(日) 18:45:15.15ID:Q2loWuJOM
ロックしちゃうと問答無用でCPUが何もせずに止まっちゃうわけないだろw
2019/05/05(日) 18:47:01.12ID:uudMW5nw0
え?lock中にアクセスしようとしたらどうなるの?
721デフォルトの名無しさん (ワッチョイ f72d-/hjB)
垢版 |
2019/05/05(日) 18:48:17.37ID:1Pm7tIcB0
ロックが取得できないだけ
2019/05/05(日) 18:48:31.54ID:Q2loWuJOM
お前のPCは8スレッドぐらい動かしたら止まるの?
2019/05/05(日) 18:51:01.09ID:IBoHsNppa
>>719
うるせーなスマホで長文書くとミスるんだよ
スレッドがブロックされるってことだ
2019/05/05(日) 18:51:41.98ID:Q2loWuJOM
>>723
ググってきたのかよ低能さん
2019/05/05(日) 18:52:07.51ID:uudMW5nw0
>>721
そんときのコードってどう書くの?
2019/05/05(日) 18:53:42.23ID:IBoHsNppa
>>724
調子のんなよ重箱の隅つつきマン
2019/05/05(日) 18:55:47.24ID:Q2loWuJOM
>>726
lockとMutexのパフォーマンスのベンチ比較して
結果を出せよ
それまで書き込みするな
2019/05/05(日) 19:00:35.89ID:IBoHsNppa
>>727
はぁ?
言い出しっぺのてめーがパフォーマンス一番良いミューテックスのベンチ出せや
一番ってんならロックと比較なんてケチくせえこと言わんで他の排他制御機構とも比較しろよ?
2019/05/05(日) 19:00:46.75ID:Q2loWuJOM
どう見ても間違っている内容で煽られると人はどう思うのか
どう考えても仕組み上Mutexのほうが遅い
730デフォルトの名無しさん (ワッチョイ f72d-/hjB)
垢版 |
2019/05/05(日) 19:07:06.98ID:1Pm7tIcB0
>>725
普通に取得できるのを待ってるな
まあ、ロックが取得できるまで制御を戻したりはしておらんわ
2019/05/05(日) 19:12:25.48ID:uudMW5nw0
>>730
だよね
ちょっと調べてるけど
普通の排他処理組んでおきたくて

lock
ReaderWriterLockSlim
UpgradeableReadLock

なんか普通の排他処理したいだけなのに
たくさん出てきちゃったぞ
これ全部使っても
ん?排他処理できてんのか?
って疑問が晴れない
この言語非同期処理の対応手薄なんだよねまだ
時期尚早として触らんことにしたw
732デフォルトの名無しさん (ワッチョイ f72d-/hjB)
垢版 |
2019/05/05(日) 19:21:47.99ID:1Pm7tIcB0
LockやMutexは初心者本の範囲内だからしらんのはまずいよ
2019/05/05(日) 19:45:53.31ID:VmrJwxHQM
非同期のチートシートないの?
2019/05/05(日) 19:57:32.38ID:LYwUBfu90
https://qiita.com/tadokoro/items/28b3623a5ec58517d431
測った人によると
nterlocked > lock > SemaphoreSlim > Semaphore > Mutexだってさ
735デフォルトの名無しさん (ワッチョイ cb02-Xm0a)
垢版 |
2019/05/06(月) 02:20:35.00ID:wkmj+bF20
並列処理なら.netなんだからF#でSTM使え。
何で関数型言語が注目されたんだよ。
並列処理に有利だからだろ。
2019/05/06(月) 04:59:30.75ID:wr9bFPpT0
マルチスレッドなんか無理!
だから、Ruby の人は、Elixir を使う

作るのに何百年も掛かる、人類の成果、Erlang VM + Ruby = Elixir。
ErlangVMを、Rubyでラップしたもの

Elixirの小プロセスなら、10万プロセスも余裕!
パイプラインと同じ

関数型だから状態を持たない。
ただ、データを変換していく関数をつなげていくだけ!
2019/05/06(月) 07:40:48.06ID:WDjCowqB0
>>736
Rubyにマルチスレッドは、無理!
RubyはいわゆるGILといって、同時に複数のスレッドが走らないような排他制御がVMレベルでかかっている
これはVM自体がスレッドセーフでないクソ実装であることに起因する制約である
もちろんC#にはそんなものはないし、ベンチマークだとErlangより速い
2019/05/06(月) 12:19:36.88ID:zGa1jTsu0
Windows8.1/10の令和対応アップデートでWinFormsの画面レイアウトが崩れるらしいね
2019/05/06(月) 12:48:42.80ID:w2Z6VwVJ0
お前んとこのWinformsいつもレイアウト崩れてんな
2019/05/06(月) 12:59:34.99ID:rtkPFZMSd
>>738
俺のとこも昨日発生した
AutoScaleModeをNoneにして対応できたから令和のせいではないと思う
2019/05/06(月) 13:02:49.51ID:4h7Vjk7HM
>>739
は?崩れてねーし
OKボタンが画面外にいって押せないだけだ
742デフォルトの名無しさん (ワッチョイ 4f85-9El8)
垢版 |
2019/05/06(月) 21:06:24.34ID:Gi+4ls7q0
画面レイアウトがクソみたいに崩れたぞ死ねや
2019/05/06(月) 21:19:39.33ID:Gi+4ls7q0
>>740
どうやってやるのそれ?
visual studio開いた時点ですでに崩れてて手動で戻すしかなさそうなんだが。

【警鐘】[改元][Windows][.NET] 「令和」対応パッチで画面が横に伸びる、文字が見切れる ― Windows Update 手動更新はちょっと待った方がいい
https://qiita.com/CodeOne/items/22004635d3c7cc533e5e
2019/05/06(月) 21:32:21.57ID:lj/6a9HB0
>>743
デザイナ表示壊れてんのなら.Designer.csの中身書き換えるしかないんじゃね
AutoScaleMode.FontをAutoScaleMode.Noneに全部置換したらいい
745デフォルトの名無しさん (ワッチョイ 4f85-ahOC)
垢版 |
2019/05/06(月) 21:39:51.78ID:Gi+4ls7q0
>>744
ありがとう
form1.csのデザインのAutoScaleModeをNoneにしたけど何も起こらなかったからあきらめてたけど、そっちを修正したら解決したわ。
2019/05/07(火) 00:11:46.09ID:HkLoI6gC0
>>740
令和を1文字で表すやつのために、フォントをいじったんだが、そのときに既存の文字の幅が変わったらしい
なのでまあ、令和対応のせいだと言えばそうなんじゃね

つか明日からどれだけ影響出てるか考えると鬱だわ
2019/05/07(火) 01:24:56.82ID:A2KlUElc0
納期直前でGW返上してる最中にこの不具合対応しなきゃいけなくなってかなりイラッとした
2019/05/07(火) 08:16:44.51ID:h85TWq9Qa
https://devblogs.microsoft.com/dotnet/introducing-net-5/
.NET Framework 終了のお知らせ
Coreへ移行できないドカタは永遠に4.xに取り残されることが決定したようだ
2019/05/07(火) 08:55:31.55ID:H2EGG+st0
>>748
すげーな。20年以降毎年バージョン上がる予定か
2020 .net5
2021 .net6
2022 .net7
2023 .net8

.net4で停滞した10年とは一体
2019/05/07(火) 08:58:10.52ID:Q8AOfbVkd
Java interoperabilityって何なんだよ…
2019/05/07(火) 09:30:59.37ID:n4vre8LhM
>>748
出来損ないは過去に葬った方が世の中のためだぁ
2019/05/07(火) 10:21:58.95ID:vw5zJnlq0
バージョンを頻繁に上げるのは、
成熟していないってことでは?
2019/05/07(火) 11:33:46.06ID:4Mlb2ms50
FrameworkからCoreに移行できないのはどういう場合ですか?
2019/05/07(火) 11:59:10.66ID:25JpTCOf0
え、winformはどうなるの??
2019/05/07(火) 12:06:04.60ID:b+Ix+FO0a
最近のmicrosoftかなり攻めてるな
2019/05/07(火) 13:10:26.59ID:eYh/lhy30
.net frameworkからcoreなんてどこかちょろっといじったらいいだけじゃないの?
VB6からVB.netほどの変化はないんだろ?
2019/05/07(火) 13:37:50.62ID:9iRY6hHtM
>>753
そんなワケのわからんもん使こて何かあったらどないすんねん!責任取れるんかい!
わりとこれ
2019/05/07(火) 13:46:35.16ID:9CwYXDcE0
別に移行しなくてもいいですけど保守には特別料金いただきまっせ
2019/05/07(火) 13:47:55.21ID:Q8AOfbVkd
>>756
Web FormsはほぼUI作り直し
2019/05/07(火) 13:50:03.67ID:9iRY6hHtM
あと技術的な最大の障害はWebFormsだろう
WebFormsは.NET Coreではサポートされてないし、される気配もない
既存資産の移行もさることながら、.NETドカタはWebForms頼りで標準的なWeb開発のスキルを持たない奴も多い
彼らはWebアプリケーションの開発が不可能になり、路頭に迷うことになる
761デフォルトの名無しさん (ワッチョイ f72d-/hjB)
垢版 |
2019/05/07(火) 17:00:19.52ID:1tK/VkfG0
すまんが、Stream型って前の方だけメモリを解放するとか器用なことは出来ないの?
2019/05/07(火) 19:17:09.01ID:9iRY6hHtM
>>761
意味不明
お前の考えはどうでもいいから具体的に何が問題になっているのか、もしくは何が気になっているのか書け
2019/05/07(火) 19:23:08.04ID:VnMa5nf90
Stream型ってなんか確保してんの?
2019/05/07(火) 19:29:05.20ID:n4vre8LhM
Streamの実装によるだろ
2019/05/07(火) 21:03:30.48ID:FJj2rymy0
>>761
Streamクラスは抽象クラスだけど、MemoryStreamクラスを想定してるのかな。
何となくMemoryMappedFileクラスが要望に合ってるような気がする。
766デフォルトの名無しさん (アウアウカー Sa47-V/oy)
垢版 |
2019/05/08(水) 21:27:25.44ID:4kxgmlsqa
C#でwindowsPCのマイク音量設定を設けたアプリを作りたいんですが情報がいまいち出てきません
今現在どのような方法が推奨として使われているのでしょうか
2019/05/08(水) 21:33:29.28ID:UPhx/0uCM
おとなしくNAudioと言うのを使いなさい
768デフォルトの名無しさん (アウアウカー Saeb-8Yy7)
垢版 |
2019/05/09(木) 20:00:37.76ID:25KQckNoa
>>767
ありがとうございます
調べてみます!
769デフォルトの名無しさん (ワッチョイ bffc-ESYi)
垢版 |
2019/05/10(金) 07:09:33.41ID:8h0VP8xa0
RPgエディタみたいなタイルマップを配置する機能を作る場合、画像を配置するフォームは何が適切でしょうか?
前にも聞いた気がするんですが、レスを忘れてしまって、、、
2019/05/10(金) 07:45:25.60ID:guXEw79XM
モデリングソフトに決まってんじゃん
2Dでもプラグインあるからプロならモデリングソフト

個人製作ならエクセルで代用しとけ

ってスレ違うやん
2019/05/10(金) 07:46:35.31ID:guXEw79XM
いや、すまん、質問内容取り違えてたw
ピクチャーボックスで
2019/05/10(金) 08:14:45.00ID:uov0WiW1d
>>769
Panelを継承したカスタムコントロールのOnPaint内で描画する事だな
773デフォルトの名無しさん (ワッチョイ bffc-ESYi)
垢版 |
2019/05/10(金) 12:26:08.70ID:8h0VP8xa0
>>771
ピクチャボックスですね
毎回忘れちゃうです
2019/05/10(金) 17:41:55.34ID:ZtjlRqB/0
質問するだけで自分でやらないから忘れるんだよ
>>772
継承させる意味が分からないしOnPaintならPanelでなくてもいい
775デフォルトの名無しさん (ワッチョイ bffc-ESYi)
垢版 |
2019/05/10(金) 18:53:28.94ID:8h0VP8xa0
visual studioのhddへのアクセスは制限できますか?
激重です
SSDにしろって話ですけどね
776デフォルトの名無しさん (ワッチョイ bffc-ESYi)
垢版 |
2019/05/10(金) 19:04:05.18ID:8h0VP8xa0
>>774
picturebox自体を何個も並べるんですか?
picturebox1つの中に複数の画像を並べるですか?
2019/05/10(金) 19:28:03.03ID:tfYAY6pzM
>>776
どっちでもいいよ
どのみち今の君のレベルで作ってもまともに使い物になるようなものにはならないから、うだうだ考えるより手の届く範囲で経験値を積んだ方がいい
行き詰まる頃にはだいぶレベルが上がってるはずだから、また作り直す
三周目くらいになればまともに作れるようになってるよ
2019/05/10(金) 19:30:30.41ID:uRQk/IXU0
3週でいけるのだろうか?
779デフォルトの名無しさん (ワッチョイ d768-Lzly)
垢版 |
2019/05/11(土) 12:14:17.95ID:kDrnBD/r0
低レベルな質問で申し訳ないのですが、循環バッファって凄い便利だから
全ての配列は循環バッファで実装すればいいと思うのですが、デメリットはあるんでしょうか?
Delete
Insert
Add
が全てO(1)で出来るって凄くないですか?
2019/05/11(土) 12:25:39.14ID:E3skkYkSM
>>779
俺は必要になったことないよ
どんなときにいいの?
2019/05/11(土) 12:30:42.30ID:qR2J3ArJM
下手の考えなんとかつってなー
高レベルになってから言ってくれ
782デフォルトの名無しさん (ワッチョイ 375f-4N0r)
垢版 |
2019/05/11(土) 12:39:31.51ID:td9YBJ3L0
>>779
>***全ての配列は***循環バッファで実装

配列のままの方が良い場合もあるが
そうしたいならそうすればいい

ただし配列以外の構造が必要になるケースでは使えないぞ
2019/05/11(土) 12:56:33.31ID:4CcYolMU0
>>779
トークンリングとイーサネットの
違いを理解してから再度質問を
2019/05/11(土) 12:59:31.48ID:aDjFJI/sa
>>779
Addは、reallocationを考慮しても償却定数時間で出来そうだが
Delete, InsertがO(1)だというソースをくれ、「末尾」という指定がない以上任意位置だよな?
途中要素をDelete,Insertしたら要素の詰め直しが必要でO(N)になると思うんだが
O(N)になるならList<T>で十分という話になる
785デフォルトの名無しさん (ワッチョイ 7f7c-Or+L)
垢版 |
2019/05/11(土) 13:05:46.01ID:DR+jkhoz0
続きはこちらでどうぞ

【O(n)】計算量の評価方法について【O(log n)】
https://mevius.5ch.net/test/read.cgi/tech/1363854937/
2019/05/11(土) 13:06:24.02ID:aDjFJI/sa
考え直したらQueueやStackのことを言っている気がしてきた
それらのデータ構造がもうあるんだからそれ使えば良いんじゃね
2019/05/11(土) 15:39:49.17ID:8cYUuN//0
すべての配列は〜というのが考え方が
そもそも乱暴で

目的に合わせてデータ構造を選ぶものじゃ
2019/05/11(土) 16:14:40.10ID:MBpEq5nf0
Visual C#で電卓を作ってます。
ある数字ボタンをクリックしたとき、(Button)sender).TextでTextran欄の文字を取得できますが
クリックではなく、キーボード入力で同様にしたいのですが、どうすればできますか?
2019/05/11(土) 16:26:29.83ID:VR7g318H0
>>788
KeyPressやKeyDownなどのイベント
ただし該当するコントロールにFocusされてないと反応しないのでフォームで全部受けるようにするとはかどる
https://dobon.net/vb/dotnet/form/keypreview.html
790デフォルトの名無しさん (ワッチョイ bffc-ESYi)
垢版 |
2019/05/11(土) 17:24:06.36ID:qy13k0f30
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(@"C:\Users\◎◎\Desktop\volly.gif");
this.pictureBox1.Image = bmp;

パスについてなのですが、相対パスは使えないということがあるんでしょうか。相対パスだとパラメータが違うというエラーが出ます。
フォームアプリケーションなので、form1.csにコードを書いています
form1.cs
img(フォルダ)
└volly.gif
という構造になっています

しかし、img\volly.gif
だとエラーになります
何が悪いでしょうか。
2019/05/11(土) 17:26:35.03ID:Q2bK8ZXg0
>>790
.\img\volly.gifじゃね?
2019/05/11(土) 17:31:33.00ID:vfaLavs00
実行時のカレントフォルダーが合ってないと思う
2019/05/11(土) 17:56:52.10ID:lpN0Lm9o0
デバッガでブレイクしてイミディエイトウィンドウとかで
Environment.CurrentDirectory確認すると良いよ
2019/05/11(土) 18:25:33.06ID:dxU2Wm5sa
>>790
相対パスとかの以前の問題

実際の環境にimgフォルダが作られているか?
*.exeと言った実行ファイルのある場所を見てみたらいい

多分作られてないしその中にgifファイルも作られてない
2019/05/11(土) 18:56:38.28ID:VR7g318H0
>>790
>>794を参考にするべきだけどパスの位置を確認したいのなら読み込む前のところで
MessageBox.Show(System.IO.Path.GetFullPath(@"img\volly.gif"));//指定しようとしているパスを入れる
とでも入れとけばその相対パスがどこを指しているのか絶対パスが表示される
相対パスはソースファイルの位置からじゃなく実行ファイルの位置から作られる
2019/05/11(土) 19:09:02.07ID:vfaLavs00
>>795
> 相対パスはソースファイルの位置からじゃなく実行ファイルの位置から作られる
これは正しくないよ。その時のカレントフォルダが基準。
何もしていなければ多くの場合は実行ファイルの場所と一致するから、結果としてそうなることが多いけど。
2019/05/11(土) 19:52:49.57ID:VR7g318H0
>>796
それならexeと同じディレクトリのところから使うには
System.IO.Path.GetDirectoryName(Application.ExecutablePath)とか使って必ず絶対パスに直さないと危ないってことか
798デフォルトの名無しさん (ワッチョイ bffc-ESYi)
垢版 |
2019/05/12(日) 10:29:51.59ID:zQc98Y8H0
Console.WriteLine(System.Environment.CurrentDirectory);
としても出力には何も出てこないのですか?
出てこないです
作業フォルダっていうのはform1.csとは別のファイルのことなんですね
2019/05/12(日) 10:48:00.86ID:NzWVi3Qm0
console覗くか
traceあたりに出力しないとでは
800デフォルトの名無しさん (ワッチョイ bffc-ESYi)
垢版 |
2019/05/12(日) 10:52:27.58ID:zQc98Y8H0
おっ いけました
'2d_engine.exe' (CLR v4.0.30319: 2d_engine.exe): 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_ja_b77a5c561934e089\mscorlib.resources.dll' が読み込まれました。モジュールがシンボルなしでビルドされました。
これで正しいのかわからないですが、なんで実行ファイルがこんな場所にあるんでしょうか。プロジェクト内にあるのかと思ってましたが
2019/05/12(日) 10:53:02.25ID:M17KJIhd0
>>798
WinFormsアプリはそのままではConsoleを使用できない
Consoleを自分で準備すれば使えるが、通常は使わないかな

フォルダ(≒ディレクトリ)とファイルは違うぞ
2019/05/12(日) 11:02:52.23ID:NzWVi3Qm0
謎は解けた
2019/05/12(日) 11:03:02.94ID:PIRDu/CH0
>>800
その絶対パスは実行ファイルじゃない
その表示されているところにConsole.WriteLineで書き込んだ内容出てくるはず
2019/05/12(日) 11:04:19.53ID:JwWGS0EoM
空のコンソールアプリ作ってそこで実行して
2019/05/12(日) 11:06:21.31ID:JwWGS0EoM
そのgifファイルは実行ファイルが作られた場所に自動でコピーされてないので
コピーされるようにgifファイルの設定帰るしかない
2019/05/12(日) 11:08:55.17ID:M17KJIhd0
>>800
勘違いしてる。Console使わず、
MessageBox.Show( System.Environment.CurrentDirectory );
ってやってみてよ。
2019/05/12(日) 11:35:01.56ID:1UlYWsgm0
>>800
カレントディレクトリはexeのあるディレクトリとは別物だからです
System.AppDomain.CurrentDomain.BaseDirectory
を使ってください
2019/05/12(日) 11:42:27.50ID:Zs5BDDrj0
AllocConsole() してみなされ
2019/05/12(日) 11:46:33.54ID:7nn+3/Jt0
>>800
プログラムの実行ファイルがある場所とは別に、プログラムの実行時に「どのフォルダでプログラムを実行するか」という概念があるのは分かる?
2019/05/12(日) 11:49:29.62ID:PIRDu/CH0
先生多すぎて混乱してそうw
811デフォルトの名無しさん (ワッチョイ bffc-ESYi)
垢版 |
2019/05/12(日) 13:55:38.46ID:zQc98Y8H0
混乱してるんで一度整理します
2019/05/12(日) 14:13:47.11ID:PIRDu/CH0
そもそもカレントディレクトリを表示させる必要があるのか?
画像をPictureBoxに表示するのが目的じゃなかったのか
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況