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

レス数が1000を超えています。これ以上書き込みはできません。
2024/02/11(日) 09:17:20.44ID:8k78Qd14M
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を3行冒頭に書くこと(1行分は消えて表示されない為、もう1行は予備)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください。見かけたらNGしましょう。相手してしまったらあなたも荒らしです
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part159
http://mevius.5ch.net/test/read.cgi/tech/1691454079/
■関連スレ
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
952デフォルトの名無しさん (ワッチョイ 5a4b-QkE2)
垢版 |
2025/02/01(土) 14:33:58.55ID:4kSN6ZeX0
Send時に相手が閉じているとICMPパケットが返るので相手が閉じたことがサーバー側で認識されてReceive時にエラーで返すようになってしまうので、特殊な設定でICMPパケットは無視するようにするということですね…
これで動くようになりました、ありがとうございます!
2025/02/04(火) 02:13:39.41ID:RZu1A42I0
神がいる
いや
神を超えた神がいる
2025/02/07(金) 18:04:03.84ID:prMQrKbT0
visual studioでソリューションをgitで管理していて、ソリューションを右クリックして例えばテストプロジェクトとか追加します
でこのプロジェクトを書いて、追加したプロジェクトをコミットやプッシュしようとしてgit変更を開いてもそのテストプロジェクトがgitの対象になっていないんです。
どうすればいいんでしょうか
2025/02/07(金) 18:39:38.58ID:wGzb9z6Q0
多分だけどフォルダ構成に問題があるのでは?
Git管理対象のフォルダの下に各プロジェクトのフォルダが含まれなければならない。

あるべき形
- Hoge/
- .git/
- Hoge.sln
- Hoge/
- Hoge.csproj
- HogeTest/
- HogeTest.csproj

不適切な例
- Hoge/
- .git/
- Hoge.sln
- Hoge.csproj
- HogeTest/ # Gitの対象外
- HogeTest.csproj
2025/02/07(金) 19:40:55.91ID:prMQrKbT0
あーなるほど、最初にソリューションとプロジェクトを同じフォルダに配置するのチェックボックスを外さないといけなかったんですね
hoge.csprojがslnと同じフォルダに入っちゃって不適切な例の形になる

あれ、そうすると一度作っちゃったら修正効かないのか作り直しか……
2025/02/07(金) 20:13:51.40ID:prMQrKbT0
できた……ありがとうございました。
誰か同じようなミスをしたときのために書いておきます。
.git/と同じ階層にあたらしくHogeフォルダを作って、hoge.csprojをそこに移動。
それでslnをひらくとHogeプロジェクトがねぇよって言われるからvisualstudioでhogeを削除。それで既存のプロジェクトを追加でさっき移動したcsprojを追加すればオッケー
あとはテストプロジェクトを追加するときも.git/と同じ階層にする。

何時間もかかったのに解決策がわかってみれば単純な話だよ……
958デフォルトの名無しさん (アウアウエー Sabf-J/8e)
垢版 |
2025/02/08(土) 12:00:23.54ID:+3qBIV3va
C#はCより速いωωω=2πf
2025/02/10(月) 11:57:56.86ID:5nUxeaay0
https://agree.5ch.net/test/read.cgi/operate/1730416546/

https://agree.5ch.net/test/read.cgi/operate/1724143380/
960デフォルトの名無しさん (ワッチョイ e5c7-a1aX)
垢版 |
2025/02/18(火) 09:02:29.76ID:j/Ngy8Tp0
Winformsなんだけど
非同期の初期化処理をawaitで呼び出したい時ってコンストラクタasyncにできないけどどうするのがベスト?

FormLoadでやる
Formを返すCreateForm()的なものを作る

なんかモヤっとするんだけど他にいい方法あったら教えてください
2025/02/18(火) 09:19:19.73ID:mekUXLb1M
UI的にはとりあえず画面出して頑張ってまーす表示でもしたほうがいいんじゃね?
何分かかるのかしらんけど
2025/02/18(火) 11:03:24.07ID:WqZtGUNA0
コンストラクタに、非同期にしなきゃいけないような処理時間の読めない処理書いたらあかん
2025/02/18(火) 11:03:48.66ID:WqZtGUNA0
フォームのコンストラクタに、だった
964デフォルトの名無しさん (ワッチョイ e535-a1aX)
垢版 |
2025/02/18(火) 13:35:36.79ID:j/Ngy8Tp0
>>963
使いたい外部コントロールの初期化処理が非同期しかないのでどうしようもないのですよ
2025/02/18(火) 13:40:42.42ID:EOZTpUGhp
初期化処理じゃ無くて、新たにイニシャル処理を書いて、適当なタイミングで非同期待ちすりゃいいんだよ
966デフォルトの名無しさん (ワッチョイ b522-nwfw)
垢版 |
2025/02/18(火) 18:42:55.90ID:lFymebEC0
Loadedイベントなりで遅延初期化すればいいだけ

async voidでawaitしてエラーハンドリングは中で行う
967デフォルトの名無しさん (ワッチョイ b522-nwfw)
垢版 |
2025/02/18(火) 18:43:41.45ID:lFymebEC0
コンストラクタに副作用のある操作を書くのはNG
テストもしづらくなる
2025/02/19(水) 11:30:43.17ID:WA7OixNvM
async awaitはただのシンタックスシュガーなのでTaskそのまんま使ってwaitしたらよいけど
対象が外部コントロールなのはお作法的にはよくないね
2025/02/19(水) 11:46:36.96ID:w6OGH7sR0
そもそもコントロールの初期化を全部コンストラクタでやらなきゃいけないわけじゃないしな
970デフォルトの名無しさん (ワッチョイ e5d0-a1aX)
垢版 |
2025/02/19(水) 12:17:04.45ID:3B96FmgC0
イベントとかでやらない限りは結局どこでやっても呼び出し元を遡ってコンストラクタまでasyncが連鎖しない?
971デフォルトの名無しさん (ワッチョイ b522-nwfw)
垢版 |
2025/02/19(水) 12:20:19.78ID:DrShOcOZ0
>>970
イベントハンドラではasync void使ってやればいいんだぞ
ただエラーハンドリングはその中で行う
2025/02/19(水) 12:47:35.71ID:sDswMLTyM
自分はCreateFormでもモヤッとしないな
2025/02/19(水) 14:32:26.09ID:mGrw3aeq0
awaitは「あっ待って」で覚えた
オススメ
2025/02/19(水) 14:35:52.58ID:WpIlRpZyp
せっかくのタスク化を同期待ちしちまったら旨みが無いよなぁ
2025/02/19(水) 15:09:50.72ID:ttPeeOLl0
UIが固まらないってメリットはある
2025/02/19(水) 17:48:47.36ID:WA7OixNvM
初期化が終わってないのに使えても困ると思うよ
977デフォルトの名無しさん (ワッチョイ b522-nwfw)
垢版 |
2025/02/19(水) 18:31:01.47ID:DrShOcOZ0
>>974
awaitは同期待ちじゃないけど?
2025/02/19(水) 18:33:18.52ID:WA7OixNvM
TaskをWaitすることでしょ?
2025/02/19(水) 19:52:24.76ID:U6FgMrZU0
アホは黙ってドキュメント読みながら勉強してろ
2025/02/19(水) 20:10:30.40ID:k2nIe6Je0
ドキュメント読みながら勉強できる人はここには来ない
2025/02/19(水) 20:12:25.23ID:WA7OixNvM
ドコモ間違ってないのに突っかかってくる方がおかしい
982デフォルトの名無しさん (ワッチョイ b522-nwfw)
垢版 |
2025/02/19(水) 20:39:33.83ID:DrShOcOZ0
>>978
Waitはスレッドをブロックするのでawaitとは全然違う

一から勉強し直した方がいいよ
2025/02/19(水) 20:42:30.17ID:WA7OixNvM
言葉が通じてないようなのでスルー

それは別として昔見たアプリはコンストラクタに前回接続したサーバーへの自動再接続処理が含まれていた
デザイナで開くとしばらく固まって接続エラーダイアログが出た
しかも非同期処理
2025/02/19(水) 20:46:12.23ID:WA7OixNvM
間違えた同期処理だった
2025/02/19(水) 20:57:47.26ID:8RK9cPeY0
>>982
978は968のことを言ってるんじゃないかな
986デフォルトの名無しさん (ワッチョイ b522-nwfw)
垢版 |
2025/02/19(水) 21:02:13.98ID:DrShOcOZ0
> async awaitはただのシンタックスシュガーなのでTaskそのまんま使ってwaitしたらよいけど

完全に嘘ついてるじゃん
なぜTaskが返るメソッドでasync waitを使わずにTaskでwaitするの?

async awaitはUIスレッドに返ってくるメリットもあるわけだけどTaskでこれを実現するのは非常に冗長だし完全に無意味なわけだけど

デマを広げられるのは困るね
2025/02/19(水) 21:06:35.64ID:z4KoX861p
センテンス違いだねww
2025/02/19(水) 21:07:59.09ID:8RK9cPeY0
>>986
嘘吐きなのは同意するけど、Waitするのは元がコンストラクの話だからだろう
流れを追ってレスした方がいいよ
989デフォルトの名無しさん (ワッチョイ b522-nwfw)
垢版 |
2025/02/19(水) 21:10:27.06ID:DrShOcOZ0
シンタックスシュガーだからTaskを使えってのが意味わからんのだけど?

awaitつけるだけでIDEが勝手にasync関数にしてくれるし

Task.ContinueWithを引数付きで呼び出せって言ってんの?

それてもまさかTaskに対してWait()呼んでんの?デッドロックするんだが理解してんのか?

WinFormsって言ってるからSynchronizationContextがあるからasync awaitを使うのは重要なんだが、何がただのシンタックスシュガーだよ
2025/02/19(水) 21:12:39.53ID:z4KoX861p
面倒な奴らだなぁ
単なるセンテンス違いでメソッドの話と人間の使う単語とが混同されてるだけやんけ
991デフォルトの名無しさん (ワッチョイ b522-nwfw)
垢版 |
2025/02/19(水) 21:16:22.18ID:DrShOcOZ0
> async awaitはただのシンタックスシュガーなのでTaskそのまんま使ってwaitしたらよいけど

センテンス違いも何もこれが完全にデマで間違ってるから指摘してるだけだね

コンストラクタでWaitしたらWinFormsだからUIスレッドブロックして操作不能になるけどそれを理解していってるよな?

GUIアプリでUIスレッドをブロックするのはユーザビリティの観点で最悪だから禁忌なんだが理解してんのか?
ウィンドウ移動もできなくなるし最悪ユーザが強制終了することになるぞ

Loadedイベントなりでasync voidを使ってasync/awaitを使って遅延初期化しろってベストプラクティスを伝えてるだけだね
2025/02/19(水) 21:22:19.81ID:XcW4NAYep
メソッドと英単語を上手く読み分けられない…まあ、初心者スレだから仕方ないか
993デフォルトの名無しさん (ワッチョイ b522-nwfw)
垢版 |
2025/02/19(水) 21:26:20.27ID:DrShOcOZ0
どういう解釈をしてもおかしいから文盲としか言いようがないな

コンストラクタでTask.Waitを呼び出せばいい ← GUIアプリでこれをやらないのは常識、意味がわからないアドバイス

async/awaitはTaskのシンタックスシュガーだからContinueWithを使えばいい ← ただ1つずつ待つだけでわざわざTaskを使う理由などない
2025/02/19(水) 21:29:40.44ID:HIluGhdbp
分かっててそこまで粘着してるってw
大文字と小文字をわざわざ書き分けてww
2025/02/19(水) 22:08:28.58ID:ME4LgXTt0
どっちが粘着してんだかw
2025/02/19(水) 22:10:53.33ID:U6FgMrZU0
>>980が踏み逃げしとったから次スレ建てといた

ふらっと C#,C♯,C#(初心者用) Part161
https://mevius.5ch.net/test/read.cgi/tech/1739970583/
2025/02/19(水) 22:11:59.31ID:WA7OixNvM
guiでTask.Wait()はダメだった
間違っていた
2025/02/19(水) 22:24:14.73ID:XGXKOHez0
>>996
2025/02/20(木) 06:00:00.71ID:qUsb4IK30
>>994の謝罪マダー??w

>>996
2025/02/20(木) 10:05:37.01ID:NQ9HqBflp
わざわざwaitとWaitとで書き分けてる意図w
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 375日 0時間 48分 17秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。

▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/

▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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