1 名前:デフォルトの名無しさん [2019/03/20(水) 18:57:36.47 ID:ZZcTomnN0.net] !extend:checked:vvvvv:1000:512 ■Visual Studio 2017 Community(無償の統合開発環境)等はこちら www.visualstudio.com/downloads/ ■コードを貼る場合はこちら ideone.com/ ■前スレ C#, C♯, C#相談室 Part93 mevius.5ch.net/test/read.cgi/tech/1492818720/ ■次スレは>>970 が建てる事。 建てられない場合は他を指定する事。 VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
562 名前:デフォルトの名無しさん mailto:sage [2021/04/21(水) 20:50:02.04 ID:qBUFmeXia.net] enbug 修正などよって新たなバグを作り込む
563 名前:デフォルトの名無しさん mailto:sage [2021/04/23(金) 13:10:42.79 ID:gxfm9rdtM.net] VisualStudio2019のクエリビルダー使ってFillを生成してるんですが、 クエリビルダーの「クエリの実行」ではパラメータに「%」使って目的のデータを取得出来るのに 生成したFillの「データのプレビュー」でパラメータに「%」使うと何もヒットしないという現象が起きてて途方に暮れてます ちなみにアンダースコアは任意の1文字で検索してくれるので初心者女子高生の私には もう原因さっぱり判りませんの(´・ω・`)
564 名前:デフォルトの名無しさん [2021/04/23(金) 13:16:05.78 ID:CEwDMyU+M.net] Fillを生成?
565 名前:デフォルトの名無しさん mailto:sage [2021/04/23(金) 13:36:44.61 ID:gxfm9rdtM.net] >>540 作成かな。メンゴメンゴ
566 名前:デフォルトの名無しさん mailto:sage [2021/04/23(金) 14:56:28.43 ID:vlx7cXWJ0.net] RDBMSのクエリログで内容確認すれば
567 名前:デフォルトの名無しさん [2021/05/03(月) 23:04:24.90 ID:XKJBqUJn0.net] 自力で簡易なセキュリティソフトを作りたいと思っています。 動きは単純で、登録されていない実行ファイルが勝手に外部に通信しようとしたらブロックするだけのものです。 AVASTがやってる動きです。 何らかのAPIをフックするのだろうという事は想像できますが、取っ掛かりが分かりません。 どのAPIを見れば良いのかご存じの方いらっしゃいますでしょうか?
568 名前:デフォルトの名無しさん mailto:sage [2021/05/04(火) 10:07:10.31 ID:N+ZQj8AqM.net] npcap使うのが定番かな今は
569 名前:デフォルトの名無しさん mailto:sage [2021/05/04(火) 10:36:28.73 ID:x7uRD8HC0.net] Windowsの話だったらWindows Filtering Platformとか
570 名前:デフォルトの名無しさん mailto:sage [2021/05/13(木) 18:58:32.33 ID:I198/5nSM.net] wpf でtabcontroleで複数タブにrediobutton配置支店ですけど これを全部一つのグループにすることってできないんですかね? groupname指定しても駄目だったので仕様的に方法なしなんでしょうか……(´・ω・`)
571 名前:デフォルトの名無しさん mailto:sage [2021/05/13(木) 20:02:28.36 ID:a3yRiKHd0.net] GroupNameでは無理 IsCheckedへのバインディングとかでうまいことやって
572 名前:デフォルトの名無しさん mailto:sage [2021/05/13(木) 23:35:30.68 ID:MnuHueii0.net] >>543 明らかにC#の範囲外の質問でOSハックレベルの話だが、例えばWindowsならカーネルドライバを利用した通信フックライブラリはいくつかあったはず んでTCPやUDPのソースポートから発信元プロセスは特定できるからそれくらいならすぐ作れるだろうけど 想像以上に多くのシステムプロセスが通信してるから登録するのめんどそうだけどな
573 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 19:19:35.19 ID:hD9Eg79MM.net] >>547 バインディングなんてわかるわけ無いだろ!(`;ω;´) もう仕方ないからボタンと背景色でタブっぽい見た目作ってラジオボタンをVisibleったりhiddenったりしてそれっぽいの作った……
574 名前:デフォルトの名無しさん mailto:sage [2021/05/16(日) 04:48:26.69 ID:CGr30bxH0.net] functorに関する質問です C++で次のように書いとけば template<typename Functor> double Example( Functor func,・・・){ 呼出し時に、引数funcに関数へのポインタでも、ラムダ式でも、関数名でも記述できますが、 C#で同じように、引数に、デリゲートでもラムダ式でも関数名でも記述可能にするにはどーすればいいのでしょうか?
575 名前:デフォルトの名無しさん mailto:sage [2021/05/16(日) 08:50:12.74 ID:8qTwOc620.net] > 引数に、デリゲートでもラムダ式でも関数名でも記述可能にするには デリゲート型を指定すればいい double Example<T>(Func<T, double> func, T obj) { ... } double ToDouble(Hoge hoge) { return hoge.Value; } this.Example(obj => obj.Value, hoge); this.Example(ToDouble, hoge); this.Example(new Func<Hoge, double>(ToDouble), hoge); ただしシグネチャが同じでもデリゲート型が違うと無理なのでラムダ式なりとおす必要がある delegate TRet Converter<TArg, TRet>(TArg arg); var conv = new Converter<Hoge, double>(obj => obj.Value); this.Example(conv, hoge); // エラー this.Example(obj => conv(obj), hoge); // OK
576 名前:デフォルトの名無しさん mailto:sage [2021/05/18(火) 04:46:17.76 ID:MJ7hOma30.net] System.Collections.Generic.List<System.String> hips = new System.Collections.Generic.List<System.String>(0); hips.Add(@"尻"); hips.Add(@"ケツ"); hips.Add(@"Buttocks"); hips.Add(@"んまら"); hips.Add(@"臀"); hips.Add(@"ω"); hips.Add(@"Hip"); foreach (System.String hip in hips) { System.Console.WriteLine(hip); }
577 名前:デフォルトの名無しさん mailto:sage [2021/05/22(土) 21:17:48.56 ID:ylKhWhlM0.net] 俺のツレの先輩がc#プログラマに酷い目に遭わされたことがある c#プログラマから金借りて返さんかったら、拉致られて拷問うけた
578 名前:wの爪全部ペンチで剥がされてその後ペンチで指先を挟んで潰されたらしい 4本目くらいで痛みに耐え切れなくて舌噛み切って死のうとしたけど死ねなかったって 命までは取られなかったけど指先全部駄目になって切断したみたい [] [ここ壊れてます]
579 名前:デフォルトの名無しさん mailto:sage [2021/05/23(日) 08:27:53.86 ID:ANX6JUnX0.net] 改変コピペ?
580 名前:デフォルトの名無しさん mailto:sage [2021/05/23(日) 13:27:11.50 ID:d15ZAA8n0.net] そうじゃなかったら知的障害かな
581 名前:デフォルトの名無しさん mailto:sage [2021/06/05(土) 14:12:36.14 ID:Zn+ZYGmH0.net] メモリ不足での相談です 小さいjpg画像ファイル(1ファイル50KB程度)を10,000ファイル程度 サードパーティ製のGridViewに投げ込んで表示させようとしてます その前にList<Image>に下のような感じでStreamで投げ込んでいくのですが var fs = System.IO.File.OpenRead(@filepath); ListData = new Bitmap(Image.FromStream(fs, false, false)); fs.Dispose(); 4000ファイルあたりでメモリ不足に陥ります VSの診断ツールで見ていると、読み出しはじめて4GBで止まります メモリが4Gでアウトになっているのは理解できるのですが ローカル上のファイルの総データ量は800MB程度で、実際に読み込みがとまるあたりでは せいぜい200MB程度読み込んだ程度と思います 2000ファイル程度にグループごとに都度分けて読み込ますしかないかなと思っていますが 確認すべき点(余計に容量食っている要因)やなにか他に方法があったらご教授ください
582 名前:デフォルトの名無しさん mailto:sage [2021/06/05(土) 14:18:34.48 ID:dB/oWOjW0.net] >>556 JpegをBitmapに展開してるのだから容量が増えるのは当然では
583 名前:デフォルトの名無しさん mailto:sage [2021/06/05(土) 15:00:04.47 ID:Zn+ZYGmH0.net] >>557 レスありがとうございます 同サイズ程度のbmpファイルもあるのでそっちでやってみましたが 4000ファイルが6000ファイルくらいに限界数が若干のびだだけでした
584 名前:デフォルトの名無しさん mailto:sage [2021/06/05(土) 15:05:40.03 ID:byK7y7eQ0.net] https://docs.microsoft.com/ja-jp/visualstudio/profiling/memory-usage?view=vs-2019
585 名前:デフォルトの名無しさん mailto:sage [2021/06/05(土) 17:36:11.90 ID:L7L31nHe0.net] 32bit優先が付いてるとか? ただどっちみちアプリ全体どころか、1つのリストで4Gもメモリに保持とかは筋がめっちゃ悪いぞ。 4000ものフル画像が同時に必要とかあり得ないし。 表示上必要ならメモリ上にもつならすごく小さなサムネイルをダイナミックに並列処理で作りながら持つとか。 今表示に必要なものだけ、ダイナミックにメモリで並列処理でサムネ作るとかでしょ。
586 名前:デフォルトの名無しさん mailto:sage [2021/06/05(土) 18:00:28.83 ID:Oyn+hOcj0.net] 今時VirtualMode的なものが無いグリッドコントロールなんてあるのか?
587 名前:デフォルトの名無しさん mailto:sage [2021/06/05(土) 19:41:37.20 ID:Zn+ZYGmH0.net] >>560 やっぱり、そうですよね 実際には10000ファイル越える予定だったのでなおさらですよね スクロール時のスピード感は多少落ちますが 素直にグリッドコントロールが描画する際に都度読み込むようにすることにします
588 名前:デフォルトの名無しさん mailto:sage [2021/06/06(日) 18:25:06.49 ID:qxB2AhqX0.net] >>562 良い悪いは置いておいて、とりあえずファイル郡をまとめて読み込んでおくのが 目的で、Bitmapで変換するとメモリを消費してしまうのならば、ファイルの内容を Streamの配列に読み込んでおいて、表示するときにBitmapで変換するとか そして表示するだけならばBitmap使わなくてもImageでStreamから読んで DrawImageでよいんじゃないかなとか
589 名前:デフォルトの名無しさん mailto:sage [2021/06/06(日) 18:34:20.4
] [ここ壊れてます]
590 名前:0 ID:SkRnwEhy0.net mailto: 無駄 [] [ここ壊れてます]
591 名前:デフォルトの名無しさん mailto:sage [2021/06/08(火) 10:18:44.68 ID:f9CCCXBt0.net] 要するにサムネ表示したいんだろ SSDなら1万ファイルの読み込みにもそんな時間掛からんし ファイルをインデクス化して画面に出る部分だけ都度読み込んで描画すればいい グリッドビューなんて必要かね
592 名前:デフォルトの名無しさん mailto:sage [2021/06/10(木) 16:49:33.11 ID:r3+xqCr00.net] 仮想化すればいいだけの話じゃん 何兆個のファイルがあろうとどうせ表示される項目は多くても数十なんだからスクロール位置などから表示すべきファイルだけサムネ表示すればいい
593 名前:デフォルトの名無しさん mailto:sage [2021/06/11(金) 13:38:09.74 ID:SXyLlFHz0.net] 日本語の変数名使えるのに記号の変数名はダメなのかよ 競馬関係のアプリ開発受注したから予想記号の変数名として分かりやすく記号使いたいのに
594 名前:デフォルトの名無しさん mailto:sage [2021/06/11(金) 17:10:30.00 ID:Ugg65Q0l0.net] 記号で分かりやすくとか頭おかしいんじゃないの?
595 名前:デフォルトの名無しさん mailto:sage [2021/06/11(金) 19:23:13.76 ID:jsNxLdjOM.net] enumの値とかならまあわからなくもないかな enum 予想記号 {◎, ○, ▲, △, ☆, ☓}; var 予想 = ◎; https://umasiru.com/wp-content/uploads/2019/03/IMG_4633-2.jpg
596 名前:デフォルトの名無しさん mailto:sage [2021/06/11(金) 19:36:06.84 ID:W4vbuE8s0.net] var ◎ = △;
597 名前:デフォルトの名無しさん mailto:sage [2021/06/11(金) 19:51:40.71 ID:oDFfys8F0.net] 何か競馬のあれを連想する
598 名前:デフォルトの名無しさん [2021/06/29(火) 12:33:01.69 ID:Q5UZxny0d.net] フォームを開いてその画面での処理中に Form fs = new FormA; try{ fs.ShowDialog(); ←ここ } catch{} ここのところでハンドルされてないエラーがでて止まります FormAでの例外処理などには一切ひっかからず この場合解決の道筋はどこからでしょうか ちなみにFormAではwebview2でオフィス365のウェブ版エクセルの新規作成を開こうとするとエラーになります ワードではでないのですが ここででるエラーは、System.Runtime.interior services.COMEException 0x8007139Fです
599 名前:デフォルトの名無しさん mailto:sage釣 [2021/06/29(火) 19:49:17.93 ID:Fhu3lWMd0.net] >>572 そのエラーコードでggr
600 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 20:27:18.03 ID:rWI2BDyVM.net] >>572 まず意味が分からんけどFormなの?Dialogなの?
601 名前:デフォルトの名無しさん [2021/06/29(火) 20:55:15.95 ID:Q5UZxny0d.net] >>574 すみません、書き間違いです Form fs = new FormA(); >>573 ググったのですが、webview2がnullなってるのだろうと考えられるくらいで、同じケースはなかったです そもそもなんでワードは開くのにエクセルはwebview2がnullになってしまうのかわからず、どこの時点でそうなるのか調べたいのですが、FormA側ではcatchできず、上の位置で停止するんですよね
602 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 21:01:59.16 ID:rWI2BDyVM.net] それ以前の根本的な問題があるのだろう 君には無理とは言わないがしばらく距離を置こう
603 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 21:47:21.44 ID:88YgLK/80.net] 変な所でフォーム表示しようとしてんじゃね そのコードだけじゃなくてメソッドごと見せてみ
604 名前:デフォルトの名無しさん [2021/06/30(水) 00:22:51.11 ID:Fi37N+TOd.net] >>577 FormAにはwebview2を配置していて、ブラウジングさせています 通常のサイト閲覧は何も問題ないのですが、ブラウザ上でエクセルが開けるoffice365を使用中、新規作成で開くときだけ呼び出し元のフォーム(上でこことしたところ)で停止します 既存のエクセルファイルなんかはFormA上のwebview2できちんと開けているのですが なので、自分
605 名前:ナ書いた特定のメソッド中のエラーではなく、ページ遷移中に停止し、呼び出し元のShowdialogのところに戻ってハンドルエラーになってしまいます [] [ここ壊れてます]
606 名前:デフォルトの名無しさん mailto:sage [2021/06/30(水) 00:39:45.90 ID:4AL6ulTf0.net] 再現する最小コードを作る それでも不明ならその最小コードを公開して質問
607 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 03:25:24.72 ID:ez5RskFXM.net] ゲイツが収入マイナス7兆円ぐらいで苦しんでる。 c# プログラマから金を集めて、ゲイツに寄付するべきだと思う。 損失の一部 5兆円ほどc#プログラマから強制的に集めたい。国内に5万人ぐらいc#プログラマはいるから、1人1億ぐらい払えばいい。 土地とか家を売ればこんぐらい払えると思う。 払えないひとは肝臓とか売ればいい。
608 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 05:01:54.92 ID:DAcib8Yu0.net] >>580 では早速言い出しっぺのあなた様から肝臓を差し出して下さい
609 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 06:04:33.61 ID:+HNBKtJi0.net] では血をとらずに肝臓だけ取り出してください
610 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 09:59:13.80 ID:gTgAsOHbM.net] 何そのハムレット
611 名前:デフォルトの名無しさん mailto:sage釣 [2021/07/03(土) 10:22:53.43 ID:ZeViGhZj0.net] アンキモ以下の脂肪肝なら処分料が欲しいな
612 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 11:22:03.96 ID:fanuEOjba.net] ヴェニスの商人では?
613 名前:デフォルトの名無しさん [2021/07/05(月) 15:24:59.38 ID:ZSz/R5WI0.net] DBから取得した重複なしの文字列List (要素数約4000) をComboBoxのDataSourceにセットする処理が、 約900ms〜1100msかかり、その間Formが固まるのですが、どうすれば固まるのを回避できるでしょうか。 A5M2でSELECTクエリの所要時間を見ると、だいたい700ms〜900ms台で、ここは改善のしようがなさそうです。
614 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 15:45:29.72 ID:5mYpWHh80.net] ComboBoxで4000の中から選ぶのは大変そうだな DataSourceに設定する前後にComboBox::BeginUpdate/EndUpdateを呼べば多少は改善すると思う それ以上はComboBoxじゃ無理じゃないかな 仮想モードもないし
615 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 16:04:21.63 ID:yitPGA0i0.net] やばそう
616 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 16:35:24.72 ID:lQZs6uo50.net] >>586 DBからデータ取得する処理は非同期に
617 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 16:53:08.67 ID:S2aqSQgd0.net] >>586 DBから取得する部分を別スレッドで動作するasyncメソッドにするです UIの更新は別スレッドなのでInvokeで
618 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 17:11:11.76 ID:ynDVyPDO0.net] awaitしとけばUIスレッドに戻ってくるからInvoke要らんだろ
619 名前:578 mailto:sage [2021/07/05(月) 17:14:42.74 ID:ZSz/R5WI0.net] みなさんありがとうございます。 BeginUpdateとEndUpdateで20〜40msほど早くなりました。 現状、DBからの取得部分は別スレッドにしています。 ただし、フォーム表示時に、 @ComboBox の DataSource に List をセット。 A別の個所で設定した値で、ComboBox.SelectedItemを決定。 BComboBox.SelectedItem に応じて、それに対応するデータを DataGridView に表示。 という処理をしているので、結局ComboBoxへのDataSourceセット待ちになります。 むしろUIと同じスレッドでデータ取得すればスレッド切り替え処理がなくなって微妙に高速化出来るんじゃ?と思ってます。
620 名前:578 mailto:sage [2021/07/05(月) 17:33:32.24 ID:ZSz/R5WI0.net] データ取得をUIスレッドで行ってみましたが、別スレッドでしたケースと比較して、実行するたびに優劣変わる程度でした。 これ以上の改善は無理そうなのでいったん諦めます。
621 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 17:41:30.27 ID:lQZs6uo50.net] Formが固まるのを回避したいってのは高速化したいということだったのか・・・ ま、がんばって
622 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 17:41:33.62 ID:ykFrWqk
] [ここ壊れてます]
623 名前:T0.net mailto: >>586 転送時に圧縮かけたら高速化するんじゃね 構成わからんからあてずっぽうでいうけど DBサーバと近いWEB鯖のPHPでデータ一覧取得してJSONとかで転送(要するにPHPでAPI作成) サーバの設定等でHTTP圧縮をON 圧縮かかってるから転送そのものが高速化される どうやって圧縮かけるかは他にも色々やり方あるだろうけどね LAN内に全てそろってる(例えば同一PC内)としてもかなり速くなるはずだよ クエリで700msってのが気になるけど時間かかりすぎじゃないかな Explainみた? プロファイラはどう?昔はEQATEC Profiler使ってたけど今は何がいいんだろうね どこにどれぐらいの時間がかかってるかわからないと理論値と比較できない 初見の感想は4000件程度で700msもかかってるのが気になる 応答だけ?それとも結果の羅列まで込みの時間かな クラサバでそんなにかかる処理ってあまりないと思う [] [ここ壊れてます]
624 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 17:46:44.69 ID:ykFrWqkT0.net] そもそも一瞬で取得すれば固まらないからね あとはUIに先回りして裏で取得するとか、DB側でキャッシュするとか、小出しにしていくとか・・・ まぁ、一番簡単なのは画面にプログレスバー出してめっちゃ高速に処理してる風を装う事とかだけど ただ、何も知らずに直観でいうと100msは切るはず
625 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 17:58:05.85 ID:7JzKdw7cD.net] 実処理時間と言うより、 取得中に割り込み入れないと固まったように見えるってだけの話では
626 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 18:09:58.95 ID:ynDVyPDO0.net] 時間が掛かっているのはデータ取得の部分じゃなくて 取得したデータをコンボボックスに渡す処理(>>592 の@)だから >>587 が全てだな
627 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 19:11:56.65 ID:IA8ZeXCsa.net] たぶん「犯人」はComboBoxだろうが一応問題の切り分けが必要だと思って public Form1() { InitializeComponent(); var asm = Assembly.GetAssembly(typeof(Form)); var bl = new BindingList<Type>(); foreach (var item in asm.GetTypes()) bl.Add(item); var sw = Stopwatch.StartNew(); comboBox1.DisplayMember = "Name"; comboBox1.DataSource = bl; Console.WriteLine($"Time = {sw.ElapsedMilliseconds} ms, Number of Items = {bl.Count}"); } こんなコードを書いてみた。10年前のポンコツPCで実行してるが約2400個のアイテムをぶち込むのに デバッグモードでも10ms程度の時間しか掛からない。 つまり「犯人」はComboBoxじゃないんじゃないの?知らんけど。
628 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 19:44:16.85 ID:ynDVyPDO0.net] >>599 フォームのコンストラクタで測ってるけど、フォームがロードされた後で測るとかなり変わるよ うちの環境ではデバッグビルドで、コンストラクタ:3msec、Loadイベント時:226msec
629 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 01:07:39.66 ID:AJxevGXU0.net] DB の実行計画を見れば? インデックスを使わずに、全件探索でもしてるのでは? 2分探索なら、2 ^ 10 = 1,024 2 ^ 12 = 4,096 つまり、12回探索するだけ ミックの本でも読んだ方がよい
630 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 07:28:36.60 ID:kC5iABNna.net] >>601 その前にソートな
631 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 07:38:26.90 ID:4w9diVqq0.net] 何言ってんだこいつ
632 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 07:47:40.70 ID:Jcre+LWcM.net] インデックス張ったら挿入や更新の度に毎回ソートしてるとでも思ってる
633 名前:んだろ [] [ここ壊れてます]
634 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 08:22:21.59 ID:PbL+Rk1v0.net] 全件探索なら1回探索するだけ♪
635 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 08:54:22.76 ID:4hP0mNbe0.net] 約900ms〜1100msの処理のうち クエリが700ms〜900ms台で、改善のしようがないっていってるんだから それがホントなら速度的なものはどうしようもないと思うんだが 画面が固まる対策ならクエリを非同期に(正確にはUIスレッド以外で、か)しろで終わりだろ
636 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 09:08:47.43 ID:juTGPN6qM.net] ルビおじに絡むおじさんはルビおじよりさらに無能だからな
637 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 11:25:26.74 ID:J1QHRuI00.net] やったことないけど、コンボボックスも仮想化できるらしいから試してみたら? データ取得を非同期に出来てるなら画面が固まることは無くなりそう https://docs.microsoft.com/ja-jp/dotnet/desktop/wpf/advanced/optimizing-performance-controls?view=netframeworkdesktop-4.8#controls-that-implement-performance-features
638 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 11:36:28.26 ID:azFxX9aU0.net] >>608 それWPF >>586 はWinFormsみたいだけど
639 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 18:11:30.42 ID:RaE3JhC/0.net] WinFormsのComboBoxに仮想モード追加する例ってありそうで無いな
640 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 21:55:13.16 ID:Rt0qzyHm0.net] じゃ俺がWinFormsのComboBoxを仮想化する知恵を貸そうか?
641 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 22:04:24.92 ID:4w9diVqq0.net] まああてにするな
642 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 22:18:48.94 ID:HsJYefQaa.net] どうぞどうぞって言おうと準備してたのにw
643 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 02:05:48.56 ID:jIHjttY10.net] じゃあ代わりに言うか 「どうぞどうぞ」
644 名前:578 mailto:sage [2021/07/07(水) 03:00:22.72 ID:sX4an4wR0.net] みなさん本当にありがとうございます。 原因は、約4000の要素をDBから取り出す所要時間でした。 約60万レコード内の、文字列カラムのデータを、重複しないように、GROUP BYする処理が時間食ってました。 なので、該当の文字列カラムだけを重複なしで格納するキー一覧テーブルを作り、 データINSERT時に、キー一覧テーブルの既存レコードと一致しない文字列だけをキー一覧テーブルに追加するトリガー処理を作りました。 そして、ComboBox の DataSourceにはそのキー管理テーブルのデータをセットするようにして、表示所要時間を5〜6割短縮出来ました。
645 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 06:50:16.04 ID:oDfnQi3+M.net] 高々60万レコードの group by に700msって遅くね? DBMS 何使ってるのかわからんけどインデックス張るだけで良いような気もするが…
646 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 07:38:37.09 ID:F/xqoSBh0.net] マテリアライズドビュー作るとか
647 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 10:41:15.77 ID:qNxZ5hgE0.net] GROUP BY自体が遅いもんよ SQLが悪いとインデックス使っても無視されてFULL検索になってしまう
648 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 12:33:18.92 ID:GxuaumQya.net] それより結局ComboBoxは何の関係もなかったってことだよね? つまりボトルネックがどこにあるのか計測して確認もせず思い込みで ComboBoxが悪いとミスリードな質問をした。 ここは反省して欲しい。
649 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 12:57:56.68 ID:urFk1IqDa.net] >>619 やれやれ
650 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 13:00:11.32 ID:FuIb4wxP0.net] 最初の質問で問題の処理に約900ms〜1100msかかっていてそのうちクエリの所要時間が700ms〜900ms台と書いていて、その上でクエリ以外の部分(約200ms)を改善したいという話だったから測ってないわけではないかと クエリ部分は改善不可能と思い込んでたのはあるが
651 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 13:00:41.99 ID:ylMxxyrU0.net] >>619 は毎度お馴染みで皆さんご存知の、 ComboBoxに責のあるマイクロソフトの犬
652 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 15:16:07.20 ID:Z3N+pbe10.net] 最初に戻ると結局画面は固まってなかったってことなんだろうな これが一番のミスリード
653 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 15:26:49.85 ID:jKQg8TjQ0.net] FormのLoadで何も表示されないまま1秒以上かかるとかなり固まった感は強い だからスプラッシュやプログレスバーというのは非常に大事 これがあるだけでクレーム率はかなり下がる 速度最適化というのは実際のレスポンスやスループットだけではなくて 体感速度も最適化するべきなんだ
654 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 15:38:40.22 ID:O4oUzSnJ0.net] いや、クエリの間は固まってたんじゃね そういう意味ではコンボボックスは無関係だな
655 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 19:17:38.62 ID:Z3N+pbe10.net] 別スレッドで取得してるって言ってんのに?
656 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 20:02:39.26 ID:vUBZA2na0.net] 別スレッドの処理終了を同期で待ってたら固まるよね
657 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 20:04:38.68 ID:iooPCaard.net] 別スレッドでの取得結果を待たずにコンボボックスが表示できるとは知らんかった
658 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 20:05:37.60 ID:UGIg3KO/0.net] 空のはできるんじゃないの?
659 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 20:07:38.45 ID:iooPCaard.net] >>629 それが期待する動作だったとは読み取れなかったわ…
660 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 20:37:31.96 ID:vUBZA2na0.net] なるほど 同期で待つのと非同期で待つ違いがわかってなかったのか
661 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 20:54:47.64 ID:GxuaumQya.net] >>621 なるほどね。読み返してみると確かにそういう風に読めないこともない。 でもその解釈だと辻褄が合わないように聞える部分もいろいろあるね。 まあ揚げ足取りは本意じゃないのでこれで
662 名前:デフォルトの名無しさん mailto:sage釣 [2021/07/07(水) 21:14:19.97 ID:WowgMcxm0.net] >>618 group by の動作原理考えればそうでしょう ソートと集計の複合技でっせ EFを初心者に進めたくないのがその辺りかな 実行計画取れやと言いたくなって来る
663 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 21:32:17.55 ID:PTZA0JCFM.net] >>630 期待する動作は > その間Formが固まるのですが、どうすれば固まるのを回避できるでしょうか。 だよ?
664 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 23:15:16.70 ID:O4oUzSnJ0.net] その間ってのがどこからどこまでか 固まるとはどういうことか が、普通に考えるのとずれてるんだがな
665 名前:デフォルトの名無しさん mailto:sage [2021/07/08(木) 05:59:22.31 ID:bp32MkoMa.net] >>631 初心者なので詳しく教えてください。
666 名前:デフォルトの名無しさん mailto:sage [2021/07/08(木) 06:08:48.29 ID:4npUp7i4M.net] お前さんの普通なんて知らんがな
667 名前:デフォルトの名無しさん mailto:sage [2021/07/08(木) 07:08:26.32 ID:ynxscpbq0.net] 今回みたいなケースは再現しようがないから想像するしかないんだよな 齟齬が出るのはしょうがない
668 名前:デフォルトの名無しさん [2021/07/10(土) 10:35:48.26 ID:o1Fr1a0g0.net] メインウィンドウが開かれるのに時間がかかる場合って自動的にマウスカーソルに砂時計付くよね これってWindows 10だけの機能なのかな? スプラッシュはそういうことに気付かない人にはわかりやすいからいいと思うけど
669 名前:デフォルトの名無しさん mailto:sage [2021/07/11(日) 15:20:44.65 ID:ODsLgHFcM.net] C#について詳しくなりたい。 .net独学だからテクニックが全く身についてこない。 働きながら学べる人たちが羨ましい。
670 名前:デフォルトの名無しさん mailto:sage [2021/07/11(日) 16:47:39.95 ID:UTF+PuFAM.net] >>640 働いてはどうでしょうか
671 名前:デフォルトの名無しさん mailto:sage [2021/07/11(日) 16:53:56.36 ID:JpOAcHlL0.net] >>640 Effective C#とMore Effective C#買って読めば
672 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 09:28:12.82 ID:ReFnqSuP0.net] >>640 オープンソースのソフトウェアをただそのまま使うのではなく 自分で使いやすいよう改造して使ってみたらどうかな
673 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 14:04:49.78 ID:DOYT8O/O0.net] ひとが使いためのライブラリ作らない限りテクニックなんかロクに身に付かんでしょ。 テクニックが要らないように作られれてるのが人気があるライブラリなんだから。
674 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 17:05:33.06 ID:ihSDWtOf0.net] async・awaitを使った非同期処理の並列処理数をSemaphoreSlim使って制御しています。 https://qiita.com/tadokor
675 名前:o/items/28b3623a5ec58517d431 を見ると、SemaphoreSlimのパフォーマンスはそこまで良くないらしいんですが、async・awaitを使いつつパフォーマンスを上げる方法はないでしょうか? 並列処理数の上限は4が理想です。※多ければ多いほどいいのはいいです。 SemaphoreSlim semaphoreSlim = new SemaphoreSlim(1,4) await semaphoreSlim.WaitAsync(); try { await 自分の非同期メソッド } finally { semaphoreSlim.Release(); } [] [ここ壊れてます]
676 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 18:01:24.85 ID:AiE5hxvs0.net] 必要な場所にだけlockを掛ける lock不要なロジックにする
677 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 18:04:26.22 ID:hnMq5MVY0.net] >>645 await,asyncはlock使えないから基本>>646 の通り排他不要にするか、そのコードで頑張るしかないんじゃね
678 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 18:33:51.33 ID:4WArcuIG0.net] >>645 そのベンチマークは同期のオーバーヘッドを気にするくらい ゴリゴリ共有リソースにアクセスする場合のための比較だから 4並列でawaitするような処理をする場合とは全然違うものじゃない?
679 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 19:18:50.72 ID:xUxV3tpC0.net] async,awaitってlock使えないのか。。
680 名前:637 mailto:sage [2021/07/12(月) 19:21:57.66 ID:ihSDWtOf0.net] >>646-648 ありがとうございます。 必要な場所にだけ lock 使うようにします。 lock 不要に出来るかも検討してみます。
681 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 20:54:40.73 ID:LswkHmLx0.net] これだけだとロックのパフォーマンス差なのかawaitのオーバーヘッドなのか分からん気がする
682 名前:デフォルトの名無しさん mailto:sage [2021/07/16(金) 12:04:19.61 ID:JqVxPGJSd.net] #region を使うのは駄目ですか? 開くの面倒だ!ってセンパイに怒られました・・・
683 名前:デフォルトの名無しさん mailto:sage [2021/07/16(金) 12:24:45.09 ID:QqSxNnhma.net] うちじゃ使わなかったらレビューで指導が入るけど
684 名前:デフォルトの名無しさん mailto:sage [2021/07/16(金) 12:30:58.12 ID:81zoecY+0.net] コーディング規約に従え 個人的には使わないし他人が使ってても気にしない メソッド1個ずつにregionあったらちょっとうざいけど、ショートカット一発で全部開けるしどうでもいいかな
685 名前:デフォルトの名無しさん mailto:sage [2021/07/16(金) 12:53:50.69 ID:QqSxNnhma.net] >>654 の言う通り うちには規約にregionについての記載があるのでその通りにしなかったらレビューの指導対象 こんなことをここに書き込むと言うことは >>652 は規約を読んでないか規約そのものがないかのどちらかだと思うけど
686 名前:デフォルトの名無しさん mailto:sage [2021/07/17(土) 06:06:49.16 ID:Mspzx0w60.net] 規約ちょうだい
687 名前:デフォルトの名無しさん mailto:sage [2021/07/17(土) 11:35:23.95 ID:tiRnOuXY0.net] regionは規約がないなら使わないのが無難 特に〜のプロパティ、〜のメソッドみたいな囲いかたは最悪で、今後regionを意識してメンテしなきゃいけないのが面倒 折りたたまないと把握出来ないほどぐちゃぐちゃになってますって言ってるようなものだしね
688 名前:デフォルトの名無しさん mailto:sage [2021/07/17(土) 14:53:32.71 ID:Wlqcfoar0.net] #region (規約) 把握できないほどグチャグチャになるくらいなら囲んだ方がマシ #endregion
689 名前:デフォルトの名無しさん mailto:sage [2021/07/17(土) 19:23:55.27 ID:1SEym9JY0.net] 画面のクラスとかだとregion的な機能つかいたくなることはあると思うけどなあ。 画面って結局、人間にとって都合のいいように複数のデータを出すものなので、そのデータ毎にregion作ったりするのは変じゃないと思うけど。 Formに依存するコードを、 Form外の別クラスに書いたりしたくないじゃん。
690 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 01:36:46.77 ID:jHDjUzT3d.net] コメントを書かない論者と同じ臭いがする 誰が読んでも自然言語と同じレベルで即座に理解可能かつ 解釈の余地の入らない完璧なコードを書けていて しかもチームの全員がそのレベルに達しているという 地球上に存在しないチームで働いているかのような思い込みをしている
691 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 02:29:32.38 ID:fZXK3W//0.net] 自分しか読まない使い捨てのテストコードならコメントも書かないし、ましてや#regionなんて使わない
692 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 02:41:59.86 ID:gMJXIBls0.net] #regionはあまり使わないが IDisposableパターンの実装とか定型文的なのはでregionで畳んでおくな
693 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 07:23:51.05 ID:Ncq1Qbn/0.net] 俺もそんな感じだな インターフェースを継承するクラスは定形文が多くなるから囲んで畳んじゃう
694 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 09:20:30.72 ID:SEUoEBF50.net] IDisposeパターンなどはpartialでクラスごと隔離するのがお薦め
695 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 10:15:41.72 ID:f26THqN50.net] 子供は肉が好き!
696 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 10:18:34.20 ID:duOzNEUP0.net] partialはお勧めかなぁ? 一見、Disposeが必要なメンバーを持っているのにIDisposableパターンを実装し忘れたクラスに見えてしまいそう。
697 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 11:31:45.33 ID:SQx5QkWC0.net] 自動生成してくれるならpartialでもいいけど自分で書くなら俺はやはりひとつのクラスにするな
698 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 19:03:11.29 ID:x1tAdumV0.net] VSでクラスから別に定義されたpartialクラスに飛ぶ方法がよく分からないので、partialは使わない。
699 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 19:38:24.99 ID:SQx5QkWC0.net] まあクラスに飛ぶとか言ってる時点で使わない方が無難だろうね…
700 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 21:11:55.98 ID:wT9cmlucd.net] F12とかCtrl+F12とかできなかったっけ 知らんけど
701 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 22:09:14.51 ID:zdDSWDaE0.net] >>669 言い方が雑なだけでおかしなこと言ってるようには見えないけどなあ
702 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 22:10:16.34 ID:ZnA++D2G0.net] partial は元々自動生成コード用の機能であってクラスを分割する機能ではない 明らかインターフェイスの実装を#region化する方が可読性が高い
703 名前:デフォルトの名無しさん mailto:sage [2021/07/19(月) 02:47:17.54 ID:GZMIZdMt0.net] >>671 相手を否定せずにはいられない可哀想な人達が一定数いるから、そっとしておいてやりなよ。
704 名前:デフォルトの名無しさん mailto:sage [2021/07/19(月) 10:43:55.05 ID:uTNe/jhZ0.net] partialでクラスを分割してもファイルは1つのままでも問題ない 目障りなコードを#regionより明確に隔離できるから良いんだけどね まあ1クラス1ファイルの規約が有るなら無理だけど
705 名前:デフォルトの名無しさん [2021/07/19(月) 20:59:17.78 ID:yGPED6YR0.net] partial→見るな触るな region→見てもいい触ってもいい という使い分けになりそう
706 名前:デフォルトの名無しさん mailto:sage [2021/07/19(月) 21:29:24.97 ID:K3gEK6ANa.net] そんな教条主義的に考えなくてもいいでしょw トポロジー的(?)には部分クラスは本の1巻2巻、 #regionディレクティブは章に近い感じがするので必然的に部分クラスの方が 出番は少なくはなるわね。 何のために使うべきか、何のために存在するかってそれじゃ哲学だw エンジニアリングの発想は「何に使えるか」でしょう
707 名前:デフォルトの名無しさん mailto:sage [2021/07/19(月) 21:50:47.13 ID:6cdKHupi0.net] #region 定数 #endregion #region 変数 #endregion #region プロパティ #endregion みたいに整理?
708 名前:デフォルトの名無しさん mailto:sage [2021/07/19(月) 22:17:06.00 ID:YnDE/De/0.net] クラスの一部をT4で生成させたときに手で書いた分とファイル分けてpartialにするのとかやったことはある regionはIDisposableとかインタフェース実装した時に囲っておくのはよくやるし、 >>677 みたいな使い方するときもある
709 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 07:33:24.30 ID:DOoV4fKqM.net] 定数が増えるなら外部ファイル定義にしろ 変数やプロパティが増えるならクラスを分けろ と思ってるから
710 名前:滅多に無いが、何らかの理由でやむを得ず肥大化した時は>>677 のやり方してるな [] [ここ壊れてます]
711 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 12:11:28.91 ID:npAM0kVy0.net] フォルダ整理と似た話だよね regionってつまるところデスクトップにアイコン敷き詰めてるやつが画面上で1列空けてわかりやすいでしょって言ってる感じ フォルダ作るなりツールなりで管理した方がと思うけどそれが本人にはわかりやすいんだろうな
712 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 22:03:15.00 ID:7fUojtbc0.net] というよりデスクトップにファイル並べてるのをフォルダに入れて整理するようなイメージ
713 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 02:31:48.03 ID:/t31adkB0.net] vs2022へ向けてちょっと気合い入れて学習直しすわ
714 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 04:27:22.47 ID:S6x5cz780.net] 多数のクラスが、イベントを相互に Invoke・Listen するようになってきて、 無駄な Invoke・Listen が多数あるような気がする場合、整理するいい方法を教えて下さい。
715 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 04:31:23.12 ID:Tj+N2/ND0.net] 1から設計し直す
716 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 12:58:49.45 ID:yT2R+EQla.net] >>683 N対N関係を整理したいって聞いたら真っ先に思い浮かべるのはmediator?
717 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 08:00:21.71 ID:5V/5IZHy0.net] Utf8Stringって闇に放り去られたの? C#でHttpClientとか利用してると都度気になっちゃうんだけど
718 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 11:17:17.07 ID:LS51vqD40.net] そういや8だか9だかで採用って話があったね 10の新機能候補にもないもたいだが…
719 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 13:27:27.47 ID:EKL54yvl0.net] >>683 Microsoft.Toolkit.Mvvm.Messagingでイベントを構築し直したら良いんじゃね? こいつは .NET Standard 2.0対応だからwinformsでも動くはず
720 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 19:34:45.80 ID:q1VZBaGf0.net] とりあえず(ReadOnly)Span<byte>使っとくかと言ってる間に もうそれでいいかってなってる感がある
721 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 08:50:23.66 ID:TYMDGwka0.net] HttpClient周りじゃReadOnlySpan<byte>すらも利用できないじゃん URLとかヘッダに直接utf8放り込みたいのにstringしか受け付けてくれないし その点System.Text.Jsonは直接utf8で行けるからまだマシだけど それでもせめてC++みたいに「u8"あいうえお"」みたいに簡単にリテラルUtf8書けるようにしてほしいわ byte[]で良いから
722 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 17:00:29.45 ID:gz5mByYnM.net] C# やってる奴らとかマジで仕事舐めてんだろ 俺なんてくっさいゴミ回収の仕事して、年収たった900万円台やぞ ゴミの回収は、無かったらお前らだけじゃなく、お前以外の皆全員が困るが、お前らがやってる C# なんて なくてもお前らやお前の身内以外誰も困らんわボケ そもそも C# なんてただのお遊びやんけ 頭使ってる? 頭が良い? そんな頭が良いなら、研究者や医者やもっと世の役に立つ仕事に就けよカスが 一部の頭のおかしい意識高い系どもが C# を神格化して アフターコロナの立派な文化だ! だなんてほざいてるが根本的にやってることは eスポーツと変わらん そもそも遊びは仕事じゃねーんだわ ただの遊びでしかないもので客から金を巻き上げて立派な仕事だの崇める まさに不労所得じゃねーか そして不労所得者に向けられた言葉 「働かざるもの食うべからず」 これ C# プログラマに対する言葉だよ お前に俺がやってる仕事やらせてやろうか? 熱い炎天下の中を走りながらくっさい生ゴミの入った袋を何百個とひたすら回収する。パッカー車に手を巻き込まれりゃ腕切断してカタワになるリスクもあるんだぞ? 夏も冬も空調の効いた部屋でキーボード打ってるだけのお前らなら3日も持たねーだろうな でもな、これが仕事じゃ。仕事舐めんなカス
723 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 17:18:59.23 ID:/kPGqYai0.net] >>691 お前の年収、安っ!w
724 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 21:01:00.40 ID:uzh8TD++0.net] これ何のコピペ?
725 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 22:21:31.26 ID:de4fLkvp0.net] >>693 https://leia.5ch.net/test/read.cgi/poverty/1547956943/855
726 名前:sage [2021/08/21(土) 22:22:26.75 ID:+/txNrCq0.net] >>693 増田で見た.
727 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 00:03:11.52 ID:mrqFYxe80.net] thx なるほど。w
728 名前:デフォルトの名無しさん mailto:sage [2021/08/23(月) 18:28:34.35 ID:zCBpVreAa.net] 間抜けな仕様なのは重々承知なんだけど c#で作ったアプリケーションでアイコンダブルクリックして起動したあとに もう一回アイコンダブルクリックしたときに 新しいプロセス起動させないで すでに起動してるプロセスのmainwindow以外の window起動させることできないですかね?
729 名前:デフォルトの名無しさん mailto:sage [2021/08/23(月) 19:36:22.13 ID:cpmwRu6w0.net] >>697 今俺が作ってるアプリではMutex見て、その上でプロセス間通信してる。 coreだとどうしたもんか、と少し悩んでる。
730 名前:デフォルトの名無しさん mailto:sage [2021/08/23(月) 19:45:55.02 ID:YKmonA5q0.net] coreもそれでいいんじゃないの?
731 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 11:11:05.40 ID:61xWrGaR0.net] xamarin.formsでタブAからタブBのテキストボックスの値を参照できないので、どうすればいいですか? タブA.csから タブB.txtName を参照するとエラーが出る。
732 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 11:44:46.36 ID:H94428G10.net] >>700 どっか別のインスタンスにもっといたら? 入力された時点で親に入れたり。
733 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 08:39:47.70 ID:4fugcblF0.net] ArrayPoolの内部がよくわからないんだけど、GCに負担かからないっていうのは逆に言えば内部バッファは常駐されるってこと?
734 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 13:32:31.59 ID:iOouKnxp0.net] >>702 そうだね https://github.com/dotnet/runtime/tree/main/src/libraries/System.Private.CoreLib/src/System/Buffers
735 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 14:24:19.78 ID:F1x0ap2P0.net] audioSource.PlayOneShot(Announcement); で1分ぐらいの説明音声を流しているのですが、 音声が流れている間、入力を受け付けない良い方法って無いでしょうか?
736 名前:デフォルトの名無しさん [2021/09/01(水) 15:52:06.13 ID:Bk82infv0.net] .NET5でないと動かないライブラリがあるので.NET5をインストールしたいのですが、 ↓を参考にしてインストールしても対象のフレームワークには今まで使っていた4.7.2のバージョンまでしか表示されません。 どうやったら5が使えるようになるのでしょうか? 教えてください。 .NET5とVisual Studio2019のダウンロード、インストール | イメージングソリューション https://imagingsolution.net/program/visualstudio2019v167p1/
737 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 16:25:20.94 ID:nZXKGJdT0.net] >>705 .NET Framework
738 名前:ニ .NET5 は全くの別物だよ。 参照 ttps://docs.microsoft.com/ja-jp/dotnet/core/porting/ [] [ここ壊れてます]
739 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 16:25:42.68 ID:xCOolefd0.net] >>705 VS Installerで、[変更]→[個別のコンポーネント]で、[.NET5.0ランタイム]にチェック入ってる?
740 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 16:46:58.34 ID:Bk82infv0.net] >>706 初心者ですいません。 >>707 確認しましたが入ってます。
741 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 17:01:44.97 ID:xCOolefd0.net] >>708 もしかして、.NET Framework4.xで作ってある既存のプロジェクトを対象のフレームワークの切り替えだけで.NET5にしようとしてるの? それは無理だから、>>706 が挙げているページにあるように移植作業が必要だよ
742 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 18:54:29.18 ID:Bk82infv0.net] >>709 そうなんですね、勉強になりました、ありがとうございます。
743 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 06:21:25.28 ID:CGg78V2s0.net] それほど複雑じゃ無い(いかにも企業ユースなフレームワーク使ってるとかで無い限り)プロジェクトなら.net frameworkのソースそのままで.net5としてコンパイル出来る。 ついでにいうとこういった複雑でないものは、.net frameworkのまま、.net5から参照可能。
744 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 06:29:18.68 ID:CGg78V2s0.net] 一方、net frameworkから.net5を参照するのは無理。 この場合既存部を.net frameworkのままで通したい場合は、 .net5の方は薄くCOMインターフェースでうっスーいラップ挟むのがいいかな。
745 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 14:23:42.13 ID:ffn82dhU0.net] なんでそうぶち上げては切り捨てるを繰り返すのかねMSは
746 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 14:34:39.39 ID:uXRFOUT10.net] 延々と同じものを使われたら商売にならないから
747 名前:デフォルトの名無しさん [2021/09/02(木) 16:20:15.54 ID:4vWPiFe2F.net] ぐぐーるもたいがいやで
748 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 18:31:28.55 ID:FL5AB1qC0.net] アップルも切り捨て大好きだぞ
749 名前:デフォルトの名無しさん [2021/09/02(木) 18:43:20.96 ID:95p8ZRX9M.net] WINUIも.NET5も遅いし機能少ないくせに
750 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 00:29:45.00 ID:AHipKBXs0.net] 初心者用書いたのですが返答こなさそうなのでこちらに書きます(マルチすいません) GoogleChromeにあるイメージファイルをデスクトップにドラッグすると大抵の場合イメージファイルを保存できますが これをPictureBoxに直接ドラッグしてイメージを表示させたいです ※URLを取得してからのダウンロードだとjavascriptなどで読めないイメージが多いので他の方法を探しています これはクリップボードを経由してるんでしょうか?もし経由しているとしたらクリップボードのフォーマットは何を使ってるんでしょうか。 https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.dataformats?view=net-5.0 それ以外ならどういう仕組みなんでしょうか、何か手掛かりになるものがあれば助かります。 もし無理なら特定フォルダ作り定期的に監視して増えたファイルをロードしようと思いますが できればコントロールにドラッグしたいです、よろしくおねがいします。
751 名前:デフォルトの名無しさん [2021/09/03(金) 02:23:45.36 ID:r8mmW0/q0.net] https://github.com/davidegironi/advanceddatagridview/releases/tag/1.2.x.3 上記の、AdvancedDataGridViewを使っています。 フィルタリングする為に、 @カラムヘッダークリック ATreeView表示される選択肢の内、表示しない項目のチェックを外す。 までは動くのですが、選択内容を変更するために、再度カラムヘッダーをクリックすると、Aで非表示化した項目が消えるので、 一度フィルタークリアするしかなくなります。 int型・string型データのカラムだけで発生します。 公式サンプルも同じ状態なのですが、何が原因でしょうか?
752 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 09:05:37.92 ID:PQRWg2pe0.net] >>718 https://stackoverflow.com/questions/8442085/receiving-an-image-dragged-from-web-page-to-wpf-window WPFっつってるけどやってることはWinFormでも全く変わらんね
753 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 08:50:27.01 ID:h/8uTFD00.net] ref structの強制using欲しいと思うのは俺だけ? C++みたいな暗黙でデストラクタ呼ばれる方式じゃなくてちゃんとusing書かないとコンパイルエラーになる感じのが欲しい
754 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 10:49:07.22 ID:hEa6z0ew0.net] >>720 先に質問してたふらっとの方で既に解決しているがそれじゃダメだ
755 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 16:05:09.28 ID:eiNUFGv40.net] マルチで質問しっ放しか
756 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 00:12:57.46 ID:jZhA4bAr0.net] >>721 コード分析しろ
757 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 04:08:51.28 ID:q85I47vR0.net] 自分でanalyzer書けば警告でもエラーでもだせるよ そこまでやってる人がどれほどいるかは知らんが
758 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 08:29:58.90 ID:e368Ab820.net] 環境依存だと他人に使わせるのはちょっと身が引けるな disposable ref structとでも書いたら絶対Dispose実装しないといけないし絶対using宣言しないといけないってなれば多少アンセーフな機能も公開しやすいんだけど需要は無さそうだな
759 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 12:19:24.33 ID:I20R26Ho0.net] >>726 気が引ける、な。
760 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 17:34:11.61 ID:qrAI1q0R0.net] 50,000レコード、テキスト換算30MBある(想定最大値)JSONデータを取り回すのに向いている、ローカル用のDBエンジン(SQLiteのような)って何かありますか? 出来れば、Xamarin.Forms(Android)でも動くものを探しているのですが、他の方がどうやっているのか知りたいです
761 名前:デフォルトの名無しさん mailto:sage釣 [2021/09/09(木) 22:13:50.14 ID:AWFfXCnC0.net] Redis がベストやな
762 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 00:51:31.54 ID:Hha8Yi5K0.net] >>728 LiteDB。ずっと使ってる。 Linqで引けるから凄く便利。
763 名前:720 mailto:sage [2021/09/10(金) 09:13:28.67 ID:GizC5utx0.net] >>730 LiteDB、良さそうですね。ちょっと試してみます。 >>729 俺の知らない別の使い方とか同じ名前の別のRedisがあるのかと思って1時間ググって見たけど、わからんかった。 Redisで、SQLite的な組み込みの使い方があるの? 比較したいので具体的なところ教えて欲しい……
764 名前:デフォルトの名無しさん mailto:sate [2021/09/10(金) 12:03:33.02 ID:cGWG4Dd90.net] つか5万レコードで何するかしらんが、そのままJsonで持つとかないわ
765 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 18:39:49.98 ID:Q85sVIDV0.net] 読み込みだけなら…
766 名前:デフォルトの名無しさん mailto:sage釣 [2021/09/10(金) 20:30:22.77 ID:VM7twAvm0.net] 条件後出しする馬鹿は死ねば良いのに
767 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 10:38:13.01 ID:vIInvTaz0.net] >>732 あるんだなそれが GTA5はそうしてたし
768 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 11:53:02.01 ID:xP5kxsti0.net] 5万レコードぐらいの参照系で頻度が高いものだと結構あって、結局メモリにのせたりしないか? どうせメモリにのせるし、となると、JSONでもなんでもいいし。 LiteDB推したけど、そういう意味ではRedisはそこまで的外れだと俺は思わんかったぞ。
769 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 14:33:36.21 ID:Rk6Iyibj0.net] ソースジェネレーターの開発効率悪すぎやろ マクロと違って受動的な生成できるから便利だけど個人開発程度の規模だと返って遠回りになるな
770 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 16:10:35.48 ID:fbrsRXQN0.net] ノウハウが溜まれば効率よくなるんじゃね?
771 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 17:45:44.97 ID:r8PDzNW10.net] ウハウハだな
772 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 22:24:05.20 ID:AyzBS9aH0.net] >>737 どうすれば良くなると思う?
773 名前:デフォルトの名無しさん [2021/09/12(日) 22:29:29.32 ID:LdHcNCka0.net] ソースジェネレーターって何のこと?
774 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 23:35:28.52 ID:fbrsRXQN0.net] https://docs.microsoft.com/ja-jp/dotnet/csharp/roslyn-sdk/source-generators-overview
775 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 02:03:08.04 ID:Dz4DY8v70.net] ああ、Roslyn関係ね。了解ありがとう
776 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 09:23:25.05 ID:tAtNAwkK0.net] >>740 StringBuilderオーバーライドしたSourceBuilder的なクラスがあればミスも無くなってマシになるんじゃないか もしくはUtf8JsonWriterと同じ感じでもいいな 自分で作れって話なんだけど、ソースジェネレーターってWinFormsのInitializeComponent筆頭に内部では元々あった訳だしMS社内ではSourceBuilder的なクラスは既にあるはずだから公開されるんじゃないかと期待してる
777 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 22:03:41.13 ID:Dz4DY8v70.net] T4テンプレートと組み合わせられないか?(適当)
778 名前:デフォルトの名無しさん [2021/09/16(木) 19:12:10.42 ID:hnfTT3D30.net] WebView2でどんなページ開いてもスクロールバーが表示されずページの下の方が見ることができない。 htmlやcssでスクロールバーを非表示にしていないから、WebView2の設定を探してみたけど見つからず。 スクロールバーを表示させるにはどうしたらいいですか?
779 名前:デフォルトの名無しさん mailto:sage [2021/09/16(木) 20:03:17.64 ID:uiNLezeY0.net] WinForm? WPF? WPFだと親子関係によっては親が子であるWebView2のレイアウト領域無限に取ったりしてるとか とりあえずWinFormでもWPFでも特にプロパティとかいじらず普通にブラウザとしてのスクロールバーは出る
780 名前:デフォルトの名無しさん [2021/09/16(木) 20:30:28.11 ID:hnfTT3D30.net] >>747 WinFormです。 普通に出るのですか…何も出ないので残念です。
781 名前:デフォルトの名無しさん mailto:sage [2021/09/16(木) 21:01:08.74 ID:yaf4gWdF0.net] 親コントロールからはみ出してるんかな WebView2側のDockを有効にしたら?
782 名前:デフォルトの名無しさん mailto:sage [2021/09/16(木) 21:38:21.29 ID:xijkbl3u0.net] まさに今WebView2を使ってるところだけど普通にスクロール出るね >>749 が正解な気もするけど
783 名前:デフォルトの名無しさん [2021/09/17(金) 12:45:26.99 ID:cxQX6Vfo0.net] C#のComInterfaceってちょいちょい頭おかしいな これとかなんやねん HRESULT IEnumFORMATETC::Next(ULONG celt, FORMATETC *rgelt, ULONG *pceltFetched); ↓ IEnumFORMATETC.Next(int celt, FORMATETC[] rgelt, int[] pceltFetched); C#風にラッピングするなら普通はこうやろが int Next(FORMATETC[] rgelt, ref int pceltFetched); //Span<FORMATETC> rgeltなら尚良し
784 名前:デフォルトの名無しさん [2021/09/17(金) 13:49:09.55 ID:oDWWsmOUa.net] 自動機械で生成したっぽいな
785 名前:デフォルトの名無しさん [2021/09/17(金) 14:53:12.40 ID:J/w/zJeW0.net] WEBフリーランスで年収1000万円超えないのはどう考えてもおかしい https://www.youtube.com/watch?v=LoXe8iFAsVs エンジニアは技術力磨きすぎても金になりません https://www.youtube.com/watch?v=lM7bc6vX-3M エンジニアはお金を追求してはいけないという年寄りを論破してみた https://www.youtube.com/watch?v=qJHCmxFv718 エンジニアが教えるの下手くそな理由を論理的に解説してみた【教育の本質】 https://www.youtube.com/watch?v=3YwyYSj-k2s 派遣エージェントの言う事は9割ウソである理由【カモられない方法】 https://www.youtube.com/watch?v=8DxQFLAuFqo&t=231s IT業界のヤバすぎる落とし穴
786 名前:5選 https://www.youtube.com/watch?v=WPPCJ4o-mpA 絶対にエンジニアになってはいけない人とは【ハイクラス人材】 https://www.youtube.com/watch?v=kKUC7rZRUtc 【エンジニア】正社員/派遣社員/フリーランスのメリット・デメリットについて https://www.youtube.com/watch?v=fTG-eMpwhCg プログラミングスクールを否定する老害どもについて https://www.youtube.com/watch?v=K2SN-Rr0PgY&t=506s [] [ここ壊れてます]
787 名前:デフォルトの名無しさん mailto:sage [2021/09/22(水) 06:13:29.41 ID:4Ss0IIt3M.net] C#向けのMIDLコンパイラが粗末なんだと思う
788 名前:デフォルトの名無しさん mailto:sage [2021/09/22(水) 23:29:53.28 ID:xBbUkBcb0.net] 時代はCsWin32
789 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 12:05:22.09 ID:KmbMbzSx0.net] public Foo<T>(byte[] dat) where T : new() { 〜 }; という定義の関数があります。通常は var IntData = Foo<int>(dat); とやって、バイト配列からインスタンスを作成するのですが、Tの部分をType型の変数を使ってインスタンスを作成したいのです。 上記の例でいうと int intValue = 0; var t = intValue.GetType(); var IntData = Foo<t>(dat); // 型ではなく変数なのでエラーとなる とやりたいのです。 なにか方法はないでしょうか。
790 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 13:52:24.89 ID:SFJimoDq0.net] ジェネリック使わないように定義を変えれば?
791 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 14:32:14.74 ID:0+Ka2zog0.net] decltype(t)
792 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 14:38:26.77 ID:0+Ka2zog0.net] すまんc++と間違えた
793 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 15:00:33.89 ID:yT+OT+660.net] 許さん。 人世の生き血を啜り 不埒な悪行三昧
794 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 15:54:49.55 ID:KmbMbzSx0.net] >>757 説明を簡易にするためにintにしましたが、実際はclass/struct定義を指定して、 byte配列との相互変換するための自作ライブラリです。 クラス内クラスといった入れ子状態でも動くようにするために、内部から自分自身を 再帰呼び出しするのに、Type型の変数からジェネリックでの呼び出しが出来るように したいわけです。
795 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 15:57:14.59 ID:/3k3jyoNa.net] >>756 これならできた static class Extensions { static T Foo<T>(this T x, byte[] dat ) where T:new() { return new T(); } } 型推論はコンパイラの機能。 実行時に決まる型をコンパイラに推論しろってのは無理筋
796 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 16:15:20.36 ID:BlBnXHbl0.net] 危険性を理解した上でBinaryFormatter使え案件では
797 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 16:18:23.20 ID:rcvaLLYgM.net] >>762 どこから実行時なんて出てきたんだ? >>758 が書いてるdecltype相当の機能が欲しいって話だろ 俺も欲しいわ
798 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 16:33:19.87 ID:NYWmPD2Y0.net] C#の標準ライブラリにもよくジェネリック版関数とType版関数があるようにそれ真似ればええだけやろ 後からジェネリック版が続々と追加されたことからも分かるようにType版はリフレクションに頼る羽目になるのでパフォーマンスに劣るがな そういやネットワークメッセージをルーティングするにあたってそのたびにDynamicInvokeしてるバカなコード書いてる奴思い出したな
799 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 16:36:51.40 ID:rcvaLLYgM.net] ↑頓珍漢すぎるバカw
800 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 16:41:12.52 ID:/3k3jyoNa.net] >>764 そっちこそ何を言ってんの。 ジェネリックの型テンプレートはコンパイル時に確定している必要がある。 それをType型の変数tの値(当たり前だが実行時に決まる)からコンパイル時に 推論できるの?
801 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 16:56:38.77 ID:J3rlWY70M.net] >>767 >>756 には > int intValue = 0; > var t = intValue.GetType(); > var IntData = Foo<t>(dat); って書いてあるけどやりたいのは int intValue = 0; var IntData = Foo<decltype(intValue)>(dat); // もちろんC#にはdecltypeはないからエラーになる だろ コンパイル時にintValueの型はわかってるから原理的にはできるはず
802 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 16:59:12.82 ID:6TsnNU9s0.net] >>756 普通にもう一段ジェネリック関数でラップしたらいいだけじゃん static T Foo<T>(T value, byte[] dat) where T : new() => Foo<T>(dat); int intValue = 0; var IntData = Foo(intValue, dat);
803 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 17:12:05.00 ID:J3rlWY70M.net] まあそうなんだけど値を使わないのに引数に指定するのもなんか気持ち悪いし ※ 個人の感想です
804 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 17:19:29.24 ID:6TsnNU9s0.net] >>770 var t = intValue.GetType();をする方がめちゃくちゃ気持ち悪い GetType()はオブジェクトヘッダからタイプ情報を抜き出すっていう実行時処理だからそれこそ求めてるものとは全く違うと思うけどな 逆にジェネリックは完全にコンパイル時計算なので>>769 とか>>762 ならほぼ確実にインライン展開される
805 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 17:25:05.23 ID:6TsnNU9s0.net] それに下手したらintに対してGetType()するとmalloc(sizeof(int32_t) + sizeof(void*) * 2);みたいな処理が内部で走って糞効率悪いぞ(Boxing)
806 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 17:41:25.60 ID:DH+C27O00.net] 戻り値をoutで返せば
807 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 17:42:27.32 ID:J3rlWY70M.net] >>771 > var t = intValue.GetType();をする方がめちゃくちゃ気持ち悪い まあ気持ち悪さの基準は人によって違うから、お前はそうなんだろうね
808 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 17:46:34.83 ID:OckC1gs8p.net] よしわかった! リフレクションでジェネリックメソッドを生成しよう!
809 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 17:47:27.75 ID:KmbMbzSx0.net] >>763 後出しですみません。 既存の機器と通信するためにByte配列との相互変換なのですが、 BCDとか、エンディアンの指定があるんです。 なので、BinaryFormatter は使えないんです。 >>769 なんとかなるかな? ちょっと試してみます。 アドバイスありがとう。
810 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 17:49:12.35 ID:6TsnNU9s0.net] >>774 引数指定しなくていいバージョンも754が書いてくれてるだろ int intValue = 0; var IntData = intValue.Foo(dat);
811 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 18:13:44.25 ID:J3rlWY70M.net] >>777 申し訳ないけどそれもっと気持ち悪いわw 1週間後にそのコード見て一瞬何してるのか戸惑う自信がある
812 名前:デフォルトの名無しさん mailto:sage [2021/09/28(火) 15:45:06.15 ID:MCa79m/M0.net] 久しぶりにC#で書いてるんで勘違いしてたら悪いんだけど var str = "abc"; で、strがstring?になるんだけど前からこうだっけ? 非null型にするには string str って書かないといけないんだっけ?
813 名前:デフォルトの名無しさん mailto:sage [2021/09/28(火) 17:08:52.72 ID:SC9lU+iw0.net] 今でもそうじゃない。 Null許容オプションを変えればそうなるが、デフォルトは無効。
814 名前:デフォルトの名無しさん mailto:sage [2021/09/28(火) 20:55:13.11 ID:v2L5F78s0.net] C#8.0以前と昔と同じ動きになるようにしてるからオプションデフォだと?付けてるんだぞたしか
815 名前:デフォルトの名無しさん mailto:sage [2021/09/29(水) 03:06:23.18 ID:hXKTXicB0.net] >>756 Reflection使えばなんとかなるんじゃね https://devlights.hatenablog .com/entry/20081107/p2
816 名前:デフォルトの名無しさん mailto:sage [2021/10/05(火) 14:17:33.11 ID:/KAzPTlo0.net] unsafeでゴリゴリするのとNETの中間言語(IL)を直書きするのってどっちが速くなるのかな unsafeでゴリゴリも結局ILに直されるんだよね?
817 名前:デフォルトの名無しさん mailto:sage [2021/
] [ここ壊れてます]
818 名前:10/05(火) 14:22:47.33 ID:NZoK2SbN0.net mailto: そらちゃんと最適化されたものがかけるならILじゃないの? 規模次第だけど大抵はunsafeが早くなると思う [] [ここ壊れてます]
819 名前:デフォルトの名無しさん mailto:sage [2021/10/06(水) 20:28:42.14 ID:E0v4aPqh0.net] ネットワークドライブ上のNASに映像ファイルをコピーする処理をTaskで非同期処理を おこなっているのですが、たまーにネットワークがきれるのかNASの問題なのか 転送がとまったきりになります CancelTokenでファイルごとにキャンセルは入れられるよう進捗ウィンドウを作ってるのですが File.Copyが1つのファイルで走り始めてから止まり、Exceptionも吐かないので 中断処理入れようにもどうにもならず とりあえずApplication.Exit()でアプリごと落としてお茶を濁しているのですが なにかうまい方法ありますか?
820 名前:デフォルトの名無しさん mailto:sage [2021/10/06(水) 21:02:20.21 ID:2LxqHeEp0.net] なす
821 名前:デフォルトの名無しさん mailto:sage [2021/10/06(水) 21:37:29.69 ID:dgJN1SIT0.net] すし
822 名前:デフォルトの名無しさん [2021/10/06(水) 21:47:22.32 ID:le4x28/F0.net] FileCopyExならキャンセルできるとか https://social.msdn.microsoft.com/Forums/vstudio/en-US/45e0254c-c28f-48ad-8aac-172a903227a7/cancel-a-filecopy?forum=clr
823 名前:デフォルトの名無しさん mailto:sage [2021/10/06(水) 23:26:50.78 ID:9/4lkKr3a.net] >>785 問題を良く理解してないけど まあ生ThreadならAbortできるね。 昔はデッドロックするバグがあるネイティブdllの関数呼ぶときにはこれ使ってた。 さすがに今時は別の方法が用意されてるはずだと思うけど
824 名前:デフォルトの名無しさん mailto:sage [2021/10/07(木) 04:29:01.91 ID:NGhNP/TI0.net] HOMOHOMOHOMOHOMOHOMOHOMOHOMOHOMOHOMOHOMOHOMOHOMO
825 名前:デフォルトの名無しさん [2021/10/08(金) 20:11:01.95 ID:TjcV2IEr0.net] >>779-781 これすごい機能だな .NET 6から新規プロジェクト作成するとデフォルトで有効になると書いてある 引き継いだから知らなかった
826 名前:デフォルトの名無しさん mailto:sage [2021/10/17(日) 11:37:08.06 ID:h6ZKeWCX0.net] >>788 >>789 レスありがとうございます 返信遅くなりました 参考にいろいろやりましたが結局FTPで切断して中止させる方が簡単で 送信データ量などの進捗が拾えて残り時間の計算も簡単なので NASとFTPでやりとりすることに落ち着きました
827 名前:デフォルトの名無しさん mailto:sage [2021/10/18(月) 18:50:18.68 ID:+thFiXiN0.net] MSの.NETチームってアジア人少ないのか? 表に出てくるメンツ見てると黒人とかラテンアメリカンはちょいちょいいるのにアジア人がほぼいないんだが、 アメリカのIT企業って総じて黒人よりアジア人の方が従業員比率高いはずなのにおかしいだろ ポリコレソードで一刀両断して良いか?
828 名前:デフォルトの名無しさん mailto:sage [2021/10/18(月) 21:33:52.17 ID:PYlrOq+m0.net] 何のために?
829 名前:デフォルトの名無しさん mailto:sage [2021/10/18(月) 22:56:12.18 ID:Yxn1i5HN0.net] >>793 キモッ!
830 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 09:12:00.45 ID:dghFXsSl0.net] ブリザードの闇を知ってからはアメリカのIT業界も色々とやべぇんだなとは思った ああいう闇があるからこそ日本人からは到底理解できないようなポリコレが流行るのも致し方ないと思えるようになったわ
831 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 10:22:17.02 ID:PEqeSIiy0.net] Streamで非同期のreadを行っています。Stream.BeginRead(〜); このBeginReadをキャンセルするにはどうすれば良いのでしょうか。 通常の読み込みだと、BeginReadで指定したコールバック先でStream.EndRead(〜);を実行するのですが、1バイトも受信していない場合、EndReadを実行すると待ち状態になってしま
832 名前:「ます。 [] [ここ壊れてます]
833 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 10:44:59.71 ID:cm6tlOC00.net] StreamをDisposeすればEndReadで例外が出る
834 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 10:55:17.24 ID:PEqeSIiy0.net] >>798 BeginRead をキャンセルしたいのは、同じストリームに出力を行いたいためです。 なので、Streamは破棄できません。
835 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 14:36:25.49 ID:P0vvwNoGM.net] >>797 BeginRead 見たら ReadAsync の使用を検討しろって書いてあるからそうしたら?
836 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 15:15:21.66 ID:L0dEwSHfa.net] Readがデッドロックするような状態なら常識的にはWriteが成功するとは 考えにくい気がするんだけど違うのかなw
837 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 15:37:59.83 ID:cm6tlOC00.net] デッドロックは言葉の使いどころが違うと思う ReadAsyncでCancellationToken渡したとしても CancellationTokenSource.Cancelでキャンセルできるかどうかは具象クラスの実装次第なのに注意 .NET Core系は多分問題ないと思うけど.NET Framework系はあんまりサポートしてない印象
838 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 15:58:37.60 ID:PEqeSIiy0.net] デッドロックがどこで出たかわかりませんが、やりたいのは名前付きパイプでのプロセス間の相互送受信です。
839 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 18:22:02.29 ID:yAs/qSwO0.net] >>797 適当なこと書くけど、コールバック先の中でEndReadするのだと、データの読み取りが 完了しない限り実行されないのでダメなのではないかな? やるならばBeginReadの返却値であるIAsyncResultの内容を保存しておいて、Read 処理をやめたくなったら、保存しておいたIAsyncResultの値をEndReadに指定して 呼び出すんじゃないのかな?
840 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 18:27:10.49 ID:5eWBXwewa.net] >>802 確かに「自分で自分の処理が完了するのを待つ」 状態に陥ることを指す場合が多いけど、 単純に何かの処理が終わらないことや終わらないことも デッドロックと言うと思うけどね。 >>803 それならReadをキャンセルする必要なんか最初からないのでは?
841 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 18:29:59.71 ID:F0Ya2cseD.net] >>805 デッドロックについて言ってること全部間違ってるように見える
842 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 18:32:13.92 ID:q5Q5l1tU0.net] >>805 言いません
843 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 18:42:34.22 ID:mUw6gLDG0.net] 絶対言わない
844 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 18:45:34.17 ID:5eWBXwewa.net] >>806-808 いや言うからw 言うまでもないけどdeadlockは座礁のこと。 つまり身動きが取れなくなることなんだよ。 それは自分で自分を待つケースに限らない。
845 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 18:47:21.34 ID:mUw6gLDG0.net] 勘違いも甚だしい
846 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 19:18:16.00 ID:F0Ya2cseD.net] >>809 やはり勘違いしてるな
847 名前:デフォルトの名無しさん [2021/10/19(火) 19:26:02.78 ID:NUYGeUrwM.net] デッドロックとは 対策に徹夜で3日以上かかるバグの事を指す
848 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 19:32:00.07 ID:8pYZM1g+M.net] >>809 英語の元の意味と業界用語が違うなんていくらでもあるぞ NIC の promiscuous (mode) とか調べてみw
849 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 21:14:28.92 ID:dVCJCghn0.net] そもそも名前付きパイプって同一のストリームを読み書き両用でつかえるのか?
850 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 22:15:54.02 ID:P+gkhAFH0.net] 組み込みの資格の問題集では、 デッドロックは、資源のたすき掛け タスクA が、資源X, Y の順にロックして、 タスクB が、資源Y, X の順にロックする ここで、どのタイミングでデッドロックが起きるか、という問題
851 名前:デフォルトの名無しさん mailto:sage [2021/10/20(水) 02:56:42.16 ID:KEjGoucL0.net] rubyガイ、お前には聞いてない しゃしゃるな
852 名前:デフォルトの名無しさん [2021/10/20(水) 09:16:14.30 ID:OEiI06HQa.net] >>812 発見に3日以上 対策は3秒 だろ
853 名前:デフォルトの名無しさん [2021/10/20(水) 09:18:08.43 ID:OEiI06HQa.net] >>814 OK
854 名前:789 mailto:sage [2021/10/20(水) 0
] [ここ壊れてます]
855 名前:9:47:41.27 ID:JvBM85mK0.net mailto: 最初から説明すると、やりたいのは.NET5のWorkerServiceで作成したWindowsサービスの状態をタスクトレイに表示することです。 Windowsサービスから直接タスクトレイに表示する事が出来ないということで、タスクトレイ表示用のフォームアプリを作成。 両者間でプロセス間通信を行い、フォームアプリからWorkerServiceへの問い合わせという形では問題なく通信できました。 ※フォームアプリ:送信専用/WorkerService:受信専用 ただ、WorkerServiceの状態が変わるのは希なことなので、フォームアプリから頻繁に問い合わせるのは無駄が多いので、 フォームアプリからWorkerServiceへの接続以外はWorkerService側からのPush通信を行うように修正しました。 フォームアプリ:受信待機、WorkerService:送信。WorkerService:受信待機、フォームアプリ:送信のテストは正常に終わりました。 送信はいつ発生するかわからないため、双方を受信待機にしたところ、その状態では送信が出来ません。 受信待機状態で無ければ送信出来るのは確認しているので、受信待機を解除出来れば送信出来ると考え、その方法を探している途中です。 >>814 上に書いているとおり、受信待機状態で無ければ送信できます。もちろん、受信待機状態で相手から送信されれば受信できます。 実際にテストし、確認しています。 [] [ここ壊れてます]
856 名前:789 mailto:sage [2021/10/20(水) 10:34:02.67 ID:JvBM85mK0.net] >>804 コールバック先ではなく、送信用関数の頭でキャンセルするようにしています。 BeginReadの返り値を保存。キャンセルしたい場所でEndReadの引数に渡すようにしているのですが、EndReadを呼び出すとそのままだんまりです。 なので、なにか手順でもあるのかと思い、検索をかけたのですが解決法がわからないため、ここで質問しました。
857 名前:デフォルトの名無しさん [2021/10/20(水) 10:39:51.36 ID:OEiI06HQa.net] >Windowsサービスから直接タスクトレイに表示する事が出来ない サービスの登録で「デスクトップとの対話を許可」してあれば表示出来ますよ?
858 名前:デフォルトの名無しさん mailto:sage [2021/10/20(水) 10:42:48.21 ID:Es2OjjC60.net] 送信がちゃんと動いてるならそこ変える必要なんてないし 送信と別に受信用の接続つくれば解決するんじゃ
859 名前:789 mailto:sage [2021/10/20(水) 10:51:47.47 ID:JvBM85mK0.net] >>821 .NET 5 ではサポートされないと、どこかで読んだ覚えが・・・ 参考になるWebPage等あれば教えてください。 直接やった方が単純なので・・・
860 名前:デフォルトの名無しさん [2021/10/20(水) 11:37:20.61 ID:OEiI06HQa.net] Windows 管理ツール → サービス サービス名で右クリックしてプロパティ → ダイアログ → ログオン 「デスクトップとの対話をサービスに許可」にチェック HKLM\\SYSTEM\\CurrentControlSet\\Control\\Windows\\NoInteractiveServices 0にする必要があるかも
861 名前:789 mailto:sage [2021/10/20(水) 14:16:23.47 ID:JvBM85mK0.net] >>824 教えていただきたいのは設定の方法ではなく、.NET 5のServiceWorkerでタスクトレイにアイコンを表示する方法です・・・
862 名前:デフォルトの名無しさん mailto:sage [2021/10/20(水) 15:27:59.69 ID:G+Qou/Ta0.net] さすがにサービス作るのは面倒だから同一プロセス内で試しただけだけど BeginRead中に普通にWriteできたよ NamedPipeXxxStreamをnewする時にPipeOptions.Asynchronous指定してる?
863 名前:デフォルトの名無しさん [2021/10/20(水) 15:55:53.51 ID:5SoWglAaa.net] https://atmarkit.itmedia.co.jp/ait/articles/1704/11/news015.html
864 名前:デフォルトの名無しさん mailto:sage [2021/10/20(水) 16:10:12.00 ID:JvBM85mK0.net] >>826 していませんでした。 サーバ、クライアント双方にオプションを指定し、Stream.Read中にStream.Writeが可能なことを確認しました。 ありがとうございます。
865 名前:デフォルトの名無しさん mailto:sage [2021/10/20(水) 17:19:49.71 ID:VKVb6/esd.net] 前提をすっ飛ばすと突拍子もない解決手段を思いつきそれを実現しようとしてしまい四苦八苦する典型例みたいですね
866 名前:デフォルトの名無しさん mailto:sage [2021/10/20(水) 18:07:28.07 ID:jvdlGdZPa.net] レジ袋有料化みたいな話だね ただ、批判する意図はないけど、位置の概念がない
867 名前:ストリームなら普通「全二重」であるはずだ、 ってのはちょっと考えれば気づけたはずじゃなかなとは思う [] [ここ壊れてます]
868 名前:デフォルトの名無しさん mailto:sage [2021/10/20(水) 18:43:57.39 ID:qS9LysT00.net] 出来ることを出来ないと思い込んじゃったとこから始まってるんだな。 サービスからのタスクトレイアイコン然り、Streamのリードライトも然り。
869 名前:デフォルトの名無しさん mailto:sage [2021/10/21(木) 11:54:41.56 ID:JzKHPePF0.net] >位置の概念がないストリームなら普通「全二重」であるはずだ お前の勝手な思い込みだとしか思えん
870 名前:デフォルトの名無しさん [2021/10/21(木) 12:25:32.61 ID:8qSe0EAma.net] イキり馬鹿には「普通は」って文字が読めないんだな
871 名前:デフォルトの名無しさん mailto:sage [2021/10/21(木) 13:30:46.89 ID:E6Iq4yprD.net] >>830 その方法で判断してるなら既にいくつかバグ孕んでそう
872 名前:デフォルトの名無しさん mailto:sage [2021/10/21(木) 14:41:10.46 ID:hTdTaobFa.net] r/wを排他的にせざるをえない必然性や制約が存在しない限りわざわざ排他的にする合理性はないというだけの話。 馬鹿じゃないの。 というか、例えば2.0までのUSBは物理層が「半二重」だが、上位の層ではそんなことを 意識する必要はないようにしてある。 そんな制約を意識する必要があったらやってられないからだ。 必要もないのにそんな制約を課す馬鹿がどこにいる
873 名前:デフォルトの名無しさん mailto:sage [2021/10/21(木) 16:22:37.02 ID:vKSzbwpZ0.net] 双方向に通信できるか、一方向にしか通信できないことと、全二重半二重は別の概念じゃない? 双方向通信になって初めて半二重なのかと考える必要があるし、そもそもIPCをOSのAPIで使ってるときにそんなにシビアに考えることかな?という気がする
874 名前:デフォルトの名無しさん mailto:sage [2021/10/21(木) 16:25:27.19 ID:AAqgo5mm0.net] 双方向のプロセス間通信なら、パイプじゃなくてIPC使ったほうが楽じゃね?
875 名前:デフォルトの名無しさん mailto:sage [2021/10/21(木) 22:48:54.75 ID:JzKHPePF0.net] >>833 お前の言う「普通」はお前の思い込みだって指摘だが、普通が読めないとかどっから出てくる話だ そもそも位置の概念と双方向か片方向かは関係ないし 双方向のストリームは全2重であるべきだって意見なら理解しないではないが お前の希望が普通に実装されてるとは限らんのだよ
876 名前:デフォルトの名無しさん mailto:sage [2021/10/22(金) 03:27:01.26 ID:OMPuRiy7a.net] 白鳥は普通白い、というのは全称命題(黒い白鳥はいない)ではない。 イキり馬鹿って本当に馬鹿で笑えるねw ファイルのように位置の概念があるストリームでは排他的にr/wされたら困るだろうw 馬鹿じゃなかろうかマジで
877 名前:デフォルトの名無しさん mailto:sage [2021/10/22(金) 03:28:52.19 ID:OMPuRiy7a.net] × 排他的に 〇 非排他的に
878 名前:デフォルトの名無しさん mailto:sage [2021/10/22(金) 03:58:09.76 ID:OMPuRiy7a.net] 最近ヤフコメの規制が話題になってるけど、 webくんだりで他人に居丈高な態度を取る奴の動機の源泉(うだつ上がらない) なんて見え透いてるよねw 別にうだつ上がらないのは悪くないが(俺もそうだし) いい歳こいてそういう自分の動機を自覚できないのも、他人から自分がどう見えているかを 意識できないのもかなり痛々しいよねえw
879 名前:デフォルトの名無しさん mailto:sage [2021/10/22(金) 07:26:26.05 ID:fpd3u34i0.net] 括弧の中はコーラスかな
880 名前:デフォルトの名無しさん mailto:sage [2021/10/22(金) 08:40:47.54 ID:sYXSwuhS0.net] うだつってどこで売ってるの?
881 名前:デフォルトの名無しさん mailto:sage [2021/10/22(金) 08:47:26.63 ID:oVr78/SWM.net] >>839 普通のファイルのシークしながらの読み書きなら困る、はわかるんだけど、 それを一般化して、位置の概念のあるストリームで「普通」成り立つべき性質なのかよくわからない。 後学のために、いい例を教えてくれないか?
882 名前:デフォルトの名無しさん mailto:sage [2021/10/22(金) 11:28:17.10 ID:J+jDEcsH0.net] そもそもファイルストリームって(単一ファイルでは)双方向通信に使えるものじゃないから、 全二重という思い込みがよく分からないし ワッチョイ的にデッドロックの意味勘違いしてた人っぽいし 全般的に用語の使い方がいい加減な人なんだろうなと思った
883 名前:デフォルトの名無しさん mailto:sage [2021/10/22(金) 11:54:11.71 ID:V0jARYip0.net] ファイルストリームって、追記モードで複数オープンされたファイル扱えないのか?
884 名前:デフォルトの名無しさん mailto:sage [2021/10/22(金) 12:08:46.46 ID:V0jARYip0.net] 双方向のストリームなら、非排他的にアクセスされると困るという意見ならまあ理解はできる 排他的とか、自分以外のアクセスの話で、自分が全2重でアクセスできるかどうかとは無関係だがな
885 名前:デフォルトの名無しさん mailto:sage [2021/10/22(金) 12:47:13.67 ID:V0jARYip0.net] >>845 なるほど 全2重/半2重から排他/非排他の話になってるのは 話をずらそうとしてるんじゃなくて自分の中でもちゃんと区別できてないのか
886 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 03:48:37.41 ID:Ebis89vva.net] >>845 俺が用語を正確に使ってないのでなく君に読解力がないだけじゃないのかな。 俺はファイルストリームは「半二重」だと言ってるんだよ。わざわざ括弧を付けて。 括弧を付けているのは全二重/半二重という用語は普通はストリームを対象にした 用語ではないからだ。
887 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 03:54:05.25 ID:Ebis89vva.net] というか、「必要のない制約をわざわざ課す馬鹿っているんですか?」 っていうのが俺の主張の本質なんだけど、その辺も含めて文脈読めないにも程があるね。
888 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 06:21:08.23 ID:4lHZz/Ub0.net] ああ、ほんとに双方向か片方向かと全/半2重の区別がついてないのね
889 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 10:19:03.31 ID:BecJ+B2qa.net] 全二重と半二重は鉄道で例えれば単線と複線の違いだよ。 RS485通信は半二重通信になるけどな。
890 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 12:15:38.06 ID:kMf1w+hQa.net] >>851 またそれか。 片方向の文脈であれば全二重/半二重の区別は意味を持たない。 区別がついてないのは君じゃないの。マジで大丈夫か
891 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 12:24:26.91 ID:kMf1w+hQa.net] だいたい双方向とか片方向とかいう話がどっから出てくるのw 意味がわからないよ だから、必要もないのにr/wを排他的にする制約を課す馬鹿っているの?って話をしてるんだけど
892 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 12:31:01.70 ID:kMf1w+hQa.net] 次の展開予想すると、>>851 みたいな人はたぶんそれでも片方向/双方向の違いに固執して 「片方向っていうのは片方だけが能動的にr/wすることをいうんだ」みたいな話になるんだろうねw だから、だから何だよw この文脈でそれ重要ですか?
893 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 15:32:33.07 ID:4lHZz/Ub0.net] ああ、排他的ってのは自分自身からのリードとライトについて言っているのか つまりお前の中では、全2重=非排他的 半2重=排他的 ってことなのね で、片方向っていうのは片方だけが能動的にr/wすること だと まあこれからも独自路線を行ってくれ。できればひっそりと
894 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 16:20:34.86 ID:qOtMLiXha.net] ファイルストリームに半二重ないやろ? 途中で方向変わるのか? 全二重もないし。
895 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 16:40:45.22 ID:ju8sH4Lg0.net] 誰かこいつらの脳幹をdisconnectしてくれや
896 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 17:30:30.88 ID:nuxNtcA20.net] NO CARRIER
897 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 20:36:34.43 ID:cIXJUcvh0.net] >>855 既に定義された用語と違う独自用語使うならスレ外でやれ デッドロックがどういう状態かの理解はできたか?
898 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 08:10:52.85 ID:H+hg1O8s0.net] 海外の機関車のハンドルとかについている装置 運転手が突発性の病気で倒れたりして手を離すと緊急停止する
899 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 09:43:28.98 ID:GqjTTybe0.net] つまんね・・・
900 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 15:32:53.27 ID:zsG9VPuLM.net] 鎌池和馬の言の葉、我が身に降臨す。
901 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 19:07:57.24 ID:d/hZB5lcM.net] >>861 それは Dead man's switch
902 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 19:38:31.87 ID:L4R2KWZAa.net] >>860 いい機会だから言っておく
903 名前:ゥ。 それは違う。 言葉というのは置かれた文脈によって意味が変わる、 という中学生でも知っている事実を君が知らないだけじゃないの? だいたい文脈無視して意味不明な用語法の問題にすり替えて、 それを指摘されてもまだ「おかしいのはお前だ」と言い張る神経が俺には理解できない。 [] [ここ壊れてます]
904 名前:デフォルトの名無しさん [2021/10/25(月) 19:42:31.57 ID:L4R2KWZAa.net] あと>>841 ねw
905 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 20:07:49.31 ID:7NDplVqs0.net] どうでもいいけど技術的なやり取りをするのに言葉の意味を明確に定義せずにするのは困難しか産まないと思うけどな。 独自用語でもちゃんと定義したらよろしい。 定義なしに文脈によって意味が変わるなんて言ってるのは技術者失格。
906 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 22:36:46.73 ID:zQaJMovpM.net] えっちょっと待って IT用語としての「デッドロック」なんて基本情報レベルな単語だしこの板に書き込むような人なら常識だと思ってたんだけど >>809 なんかはてっきりギャグとして書いてるか、さもなくば デッドロックって言葉の意味を知らない人を馬鹿にするためにわざと書いてると思ってたんだが ひょっとして本当に知らなかったの?? でもって無知を恥じるでもなく「読解力」とか言い出して責任転嫁してるの? 「ボクチャンわるくないもん、読み手が馬鹿なのが悪いんだもん」って言ったところで 馬鹿をさらしてる人が言い出したところで説得力ないと思うよ そのうえさらに自分の語用・論理展開が支離滅裂なのを棚に上げて「文脈」とか言い出して正当化してもなあ >それを指摘されてもまだ「おかしいのはお前だ」と言い張る神経が俺には理解できない。 その言葉を反芻すべきなのは>>865 だと思うよ
907 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 22:56:47.64 ID:myY8ExBF0.net] 文脈無視して意味不明な用語法ってか さすが自分の常識は絶対だって自信がある人はちがうな で、技術論を人格攻撃で逃げようってか 相手してられん
908 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 23:12:43.16 ID:c86hiX/I0.net] デッドロックマンティウンティウンwww
909 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 01:05:29.94 ID:tLsOhANt0.net] お前らそろそろ落ち着きませんか? c#10の話でもしようぜ(錯乱)
910 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 01:13:31.28 ID:qCIhQ9NK0.net] 特定の会社なりグループなりの小さなコミュニティ内で本来の定義とは異なる意味で用語が使われることはある そのコミュニティ内で齟齬なく意思疎通取れてるならまぁ問題ない ただその輪から出たら本来の意味でのみ使用すべきだし誤解を招きそうなら補足を入れるなりすればいい 定義にシビアなことが求められる技術者がこういう場で文脈によって変わるとか言っちゃうのはどうかと思う こういう場というのが便所の落書きじゃん、というなら否定はできんがw
911 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 01:23:54.20 ID:ZoC9kawY0.net] みんなわかっているくせにいつまでも指摘しないのな。 デッドロックは暗礁でも座礁でもない。壊れた錠前のことだ。 https://www.nhk.or.jp/bunken/summary/kotoba/gimon/170.html IT 用語では、並列処理時に異なるプロセスが、互いが専有するリソースの解放を求めて睨み合い、うごけなくなってしまうリソース競合のことだ。それ以外の意味はない。 一般用語に行き詰まりという意味があったとして、IT 用語としてリソース競合という意味のズバリの状況定義があるのだから、IT に正しい理解がある人間なら、行き詰まりという一般的な意味でこの語を IT 関連の説明に使うことは絶対に避ける。他人に誤解させるし、伝わらないし、紛
912 名前:らわしいのが目に見えているから。 色々な意味で、非常に恥ずかしい部類の誤用。強弁もたいがいにしておくべき。 [] [ここ壊れてます]
913 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 01:34:11.65 ID:ZoC9kawY0.net] ✕専有→○占有
914 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 02:21:50.02 ID:UIBkHtwX0.net] 誰かこいつらをガイジ小学校に叩き込んで来てくれや
915 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 07:39:00.23 ID:+xnJ+mOr0.net] >>873 壊れた錠前とかそういう比喩でなく、 膠着状態を指す英単語だよ a situation in which a disagreement cannot be settled.
916 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 09:42:42.07 ID:Lw2w7Q/c0.net] そもそもdead rockなんて勘違いしてる奴いないじゃん 座礁って言葉使ってる奴はいるけど身動き取れなくなると説明付き リソース競合ってまた狭い意味だし座礁と同じで狭い意味でデッドロックを使ってる デッドロック(IT限定)でもプロセス競合のほうがまだまし しかも競合それ自体には行き詰まりの意味はない あくまでも競合による行き詰まりがデッドロック
917 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 11:09:30.80 ID:UqMMY6BB0.net] 座礁がdead rockからきた勘違い deadlockは身動き取れなくなるという意味はない 語源はdead+lockだから「壊れた錠前」であってるけど 今はその意味で使われることはない
918 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 11:53:16.92 ID:lkW9PATM0.net] >>878 座礁もdeadlockで間違いないし、rockとの勘違いでもない ただ英単語としての意味とIT用語としての意味を混同していたことが問題なだけ
919 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 12:21:43.14 ID:NjF3KidV0.net] まだやってんのかい。 お前ら、仲いいな。
920 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 12:43:29.66 ID:yz4Jvoxzr.net] たんなるウェイトとデッドロックの区別がついてないバカがうだうだ言ってるだけ
921 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 12:57:34.74 ID:ht6Potv3d.net] >>873 壊れた錠前では無いよ。 行き詰まりそのもの。 リソースのlock自体、錠前のことではない。 名詞としてのlockは、カギで開け閉めするものに限られるので、リソースなどを指してない。輪留めとか、にっちもさっちもいかない状態とかそういうのを指す。 動詞としては、固定するだよ。 リソースを取得するのにカギが必要なら錠前だろうけど、カギは要らない。
922 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 13:49:40.40 ID:UqMMY6BB0.net] >>879 Pope Francis urges end to migrant boat deadlock https://www.bbc.co.uk/news/world-europe-46777844 ↑この船は座礁してるのかな?
923 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 14:28:12.06 ID:lkW9PATM0.net] 多義語を知らない>>883 辞書引くだけで良いのに引けないんだね
924 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 18:40:21.38 ID:UqMMY6BB0.net] >>884 座礁って書いてある辞書教えて そしたら納得するよ
925 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 19:44:50.29 ID:uR+ZT8QXD.net] >>885 納得はいらんけど、deadlockの自動詞、他動詞の意味調べてみ
926 名前:ハノン mailto:sage [2021/10/26(火) 20:18:17.44 ID:YaaA9sXD0.net] >>886 低頓する、低頓させる、「交渉は賃金問題で行き詰まった」、旺文社シニア英和辞典 行き詰まる、行き詰まらせる、低頓する、低頓させる、研究社リーダーズ英和辞典
927 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 20:48:48.62 ID:eY0tVbdGa.net] さすがに「言葉の意味は文脈に依存する」ってことを知らない人がこれだけ多いと日本の将来心配になるねw この業界でデッドロックと言えば普通は非同期処理の文脈におけるデッドロックのことを指す、 これは最初から言っているように間違いない。 ただ必ずそうとは限らないと言ってるだけ。 イキってる皆さんがどう思おうが自由だけど、メソッドが制御を返さない状態のことをその原因を問わずに 「デッドロック」と呼ぶ用法は普通に使われてる。
928 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 20:52:50.16 ID:eY0tVbdGa.net] そもそもデッドロックの意味
929 名前:とか、片方向と双方向の違いがどうのとか、そんなのどーでもいいわw 誰がそんな話してるんだよw 俺は時々ニュース系の板とかでネトウヨ馬鹿にして楽しませてもらってるけど、 この追いつめられると別の矮小な問題にすり替えて誤魔化して逃げるやり方って 連中そのものだねw [] [ここ壊れてます]
930 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 21:39:59.59 ID:5YjTtZfR0.net] >メソッドが制御を返さない状態のことをその原因を問わずに「デッドロック」と呼ぶ まあ、たんなるロック待ちをデッドロックというやつはたまにはいるけどな あきらかに間違ってるわけで、それが普通とかもう話にならん >追いつめられると別の矮小な問題にすり替えて誤魔化して逃げる まさに今のお前だな
931 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 21:43:21.08 ID:tLsOhANt0.net] あーあ ネトウヨとか言い出しちゃったよ
932 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 22:01:25.78 ID:UqMMY6BB0.net] >>886 名詞が動詞化したものだから意味に違いはないよ 自動詞は「デッドロックになる」こと 他動詞は「デッドロックをもたらす」こと デッドロックとは「相対する2つの勢力が拮抗して事態が進展しない状態」 DBMSのデッドロックも非同期処理のデッドロックも状況が特化してるだけで意味は同じ 座礁は船と岩礁の力が拮抗してるってことなら その辺に転がってる石ころもdead rockだね
933 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 22:18:18.56 ID:+xnJ+mOr0.net] >>892 deadlockの言う座礁する、座礁させるは日本語では比喩的な使われ方をする座礁だよ 交渉が座礁するとか交渉が暗礁に乗り上げるって意味での座礁 だから名詞じゃなく自(他)動詞
934 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 22:27:49.42 ID:+xnJ+mOr0.net] つまりデッドロックマンは何もかも間違ってると言いたい
935 名前:デフォルトの名無しさん mailto:sage [2021/10/27(水) 00:14:30.81 ID:un5zQ+BD0.net] >>893 「deadlockの言う座礁する、座礁させる」って何? どこから出てきたの? deadlockの言う? 交渉が座礁するとは日本語では言わない 交渉が暗礁に乗り上げたとしてもそれがデッドロックとは限らない 単なる待ち状態をデットロックと言ってるのと同じレベル
936 名前:デフォルトの名無しさん mailto:sage [2021/10/27(水) 08:01:39.38 ID:hvQWVHhPD.net] >>895 少なくとも英辞郎には暗礁に乗り上げるって意味が載ってる 意味として膠着状態を指す慣用句としての暗礁に乗り上げるが使われてる
937 名前:デフォルトの名無しさん mailto:sage [2021/10/27(水) 08:07:10.23 ID:gYjFdZWj0.net] Rock Is Dead !
938 名前:デフォルトの名無しさん mailto:sage [2021/10/27(水) 08:22:12.88 ID:thwndR3Q0.net] Rock is not dead.
939 名前:デフォルトの名無しさん [2021/10/27(水) 10:24:03.90 ID:t2iD5tO80.net] >そもそもデッドロックの意味とか、片方向と双方向の違いがどうのとか、そんなのどーでもいいわw >誰がそんな話してるんだよw >追いつめられると別の矮小な問題にすり替えて誤魔化して逃げるやり方って連中そのものだねw まさにこれ 話を逸らすついでにスレ流して汚点を忘れさせようとしてるのが観える
940 名前:ハノン mailto:sage [2021/10/27(水) 18:07:43.86 ID:2zkjN6asH.net] >>899 東大話法、てのが大昔流行っていましたね
941 名前:デフォルトの名無しさん mailto:sage [2021/10/29(金) 08:02:34.91 ID:4uk/ll0/0.net] 連中…「組織」の者かな?
942 名前:デフォルトの名無しさん mailto:age [2021/11/02(火) 21:51:33.93 ID:4DiwsCtO0.net] ニコニコ弾幕ツールを作りたくてプログラミングとC#を初めて触ったのですが なにか参考になる動画や書籍資料等ないでしょうか? 簡単なメニュー程度なら作れるようになったんですがどうすれば弾幕打てるツールになるのか全く分かりません。 弾幕ツールソースとかでググってもそれっぽいのが全く出ず… 超初心者スレでも聞いたのですが回答もらえなかったのでこちらで…
943 名前:デフォルトの名無しさん mailto:sage [2021/11/02(火) 22:21:39.61 ID:SO0TQkZV0.net] >>902 ぐぐるんなら、「ニコニコ動画 コメント api」とかじゃね? ちょっと古いけど ttps://qiita.com/tor4kichi/items/74939b49954d3e72d789 こんな感じで以前は出来ていたようです が、今春にコメントサーバーがリニューアルされているようなので、おそらくは上記の記事そのままではなくなっていると思います https://blog.nicovideo.jp/niconews/141893.html ブラウ
944 名前:Uコントロール上でアレコレさせるのとどっちが楽かは知らん いずれにしても、言語そのものの知識以外の、httpだとかニコニコの仕様そのものだとかの知識の方が必要かと思います [] [ここ壊れてます]
945 名前:デフォルトの名無しさん [2021/11/02(火) 22:37:12.36 ID:crJtQlzP0.net] 勉強のためにやりたいのなら別だけど・・・・ 自分で使いたいとかそういう目的なら、ほとんど完成品みたいなものが既にある https://www.nuget.org/packages/NicoNico.Net/
946 名前:デフォルトの名無しさん mailto:sage [2021/11/02(火) 23:03:38.72 ID:4DiwsCtO0.net] >>903-904 回答ありがとうございます C#の知識だけじゃ実現できないのですね(;´Д`) C#の他にJavascriptとかCのAPIですか…3,4年はかかりそうですね… やったことが無駄にならないことが分かったので頑張ります
947 名前:デフォルトの名無しさん mailto:sage [2021/11/03(水) 03:43:52.91 ID:Di9oQY4e0.net] 日にどれくらい時間かけるかにもよるけど早い人なら無学から始めても1ヶ月かからんやろ すでにほとんど完成品といえるようなパッケージがあるならなれてる人なら1日かからず完成する 始めて開発というものをするにあたって半年以上かかりそうなもんはモチベーション続かんから普通はおすすめできない もしこのコメントツールで年単位で掛かりそうだと感じたならもっと規模の小さい、長くても1ヶ月くらいで完成させられるかな?って想像できるようなものから始めたほうがいいと思うよ
948 名前:デフォルトの名無しさん mailto:sage [2021/11/03(水) 08:25:21.70 ID:MLVf2VPVM.net] >>902 10/20にニコニコ動画関連総合ツールスレで質問して回答もらえなかった人? そこまでできるようにはなったんだ ニコ動の弾幕なのか、ニコ生の弾幕なのかわからないけど ・ネットアクセスのやり方(httpclientかなんか) ・WebSocketの使い方(ニコ生のみ) ・jsonの知識 ・非同期の使い方 はわかってないとできないと思う 以下を見て理解できるまでがんばって。以下のニコ生・ニコ動の説明は古くてそのまま使っても動きません。 ブラウザーのディペロッパーツールで解析してね。 ニコ生 https://qiita.com/tor4kichi/items/5c438aa11fea5422103b https://qiita.com/tor4kichi/items/4df5b11ec564bb8f8d16 ニコ動 https://qiita.com/tor4kichi/items/91550a71119f3878bfba
949 名前:デフォルトの名無しさん mailto:sage [2021/11/03(水) 11:12:45.02 ID:s4xVDTJC0.net] >>905 Web関連は基本人間が理解出来る文字列でやり取りするから比較的難易度低い方 C#で作るならCの知識が必要になる場面なんて全くないはず Html、Css、JavaScriptの知識はどの言語で開発するにしても多少必要にはなってくるがそんな難しくはない
950 名前:デフォルトの名無しさん mailto:sage [2021/11/03(水) 16:24:16.20 ID:XrFTraKdM.net] >>905 あなたが作りたいツールを作るにも10年ぐらい前ならもっと簡単な知識でつくれたんだけど、Flashからhtml5になった頃から技術的なレベルが高くなったのも一因 ニコ動、ニコ生にしても以下のステップを1つづつ目標にして。 1.ニコ動かニコ生のURLを入力してそのページの内容を取得して表示なり取得確認する 2.そのページから必要な情報を選択して取得する 3.ニコ生の場合は、その情報からwebsocketに接続して各種情報を取得 4.ニコ動の場合は、その情報からコメント情報を取得する たぶんこの辺までできれば次どうすればいいかはわかると思うよ
951 名前:デフォルトの名無しさん mailto:sage [2021/11/03(水) 20:51:20.05 ID:b4M0oSaD0.net] 今時はIEコンポーネントブラウザを使わないからだよ ニコニコの場合は (1)Javascriptでブラウザの拡張機能を書く (2)Pythonでダウンローダーや巡回、予約 で大
952 名前:シだよね、C#の出番はあまりないん [] [ここ壊れてます]
953 名前:デフォルトの名無しさん [2021/11/05(金) 19:37:49.44 ID:1GMX4TDW0.net] API使わずにスクレイピングっていいのか?
954 名前:デフォルトの名無しさん mailto:sage [2021/11/05(金) 21:29:05.81 ID:U9pi1OEC0.net] 非公式API使って制限回避してもいいぞ
955 名前:デフォルトの名無しさん mailto:sage [2021/11/05(金) 23:15:31.65 ID:/IlkeVzp0.net] 各サイトのルールは、robots.txt を見ればよい そこに、スクレイピングできる間隔などが書いてある
956 名前:デフォルトの名無しさん [2021/11/08(月) 19:23:08.09 ID:jl5nUU4op.net] SQLのパラメータって使いまわせなかったっけ? 例えば下みたいなSQLがあったとして string sql = "UPDATE HOGE_TBL SET HOGE = :hoge WHERE HOGE = :hoge "; パラメータが下1つだけだったら更新件数0件で上手く動かない… cmd.Parameters.Add(new OracleParameter(":hoge", "huga")); Javaだと上手く動くけどC#は明示的に分けないとダメな感じ?
957 名前:デフォルトの名無しさん mailto:sage [2021/11/08(月) 19:27:49.03 ID:ZmPcj5XX0.net] hugaじゃなくてfugaじゃないかな
958 名前:デフォルトの名無しさん mailto:sage [2021/11/08(月) 19:47:26.23 ID:eIDHMWNda.net] BindByName
959 名前:デフォルトの名無しさん [2021/11/09(火) 12:25:10.04 ID:+zMu32a8p.net] >>916 dクス
960 名前:デフォルトの名無しさん [2021/11/12(金) 14:47:41.59 ID:LR2kPQ3V6.net] 最近c言語習い始めた初心者なんですがwhile()のカッコ内の条件式に論理演算子を使うことはできますか もしできるならif文の時のように入力すればいいのでしょうか
961 名前:デフォルトの名無しさん mailto:sage [2021/11/12(金) 14:56:20.52 ID:9PEUH50B0.net] >>918 ここはC#の相談室なんだが・・・ まあ、ifの書き方と同じで良いですよ。
962 名前:デフォルトの名無しさん mailto:sage [2021/11/13(土) 11:48:36.10 ID:WnzBfGlt0.net] C#10で文字列補間が大幅に最適化されたってことらしいけど、 stringオンリーの4個以内(Concatの最大引数以内)以外は$"{}"で繋げていった方がむしろパフォーマンス良くなるって認識でOK?
963 名前:デフォルトの名無しさん mailto:sage [2021/11/13(土) 12:46:38.78 ID:+IhS2fUi0.net] ベンチマーク取れば?
964 名前:デフォルトの名無しさん [2021/11/17(水) 00:43:34.98 ID:qSiAIVdk0.net] わけあってVisual Studioをインストールできない環境があるのですが、 その環境で Windows標準のC#コンパイラ(C:\Windows\WinSxS配下のcsc.exe) + Visual Studio Code でC#コンパイル環境を作成したいのですができますか? 以上、よろしくお願いいたします
965 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 02:16:31.13 ID:+JwFzM8Ra.net] できるけど君の場合どうせNuGetで積むんじゃね
966 名前:デフォルトの名無しさん [2021/11/17(水) 18:51:18.08 ID:qSiAIVdk0.net] >>923 積むかどうかは分からないですね 私は超能力者ではないので
967 名前:デフォルトの名無しさん [2021/11/17(水) 20:50:08.18 ID:iuNg9UQr0.net] ビスマルク「愚者は経験に学び、 賢者は歴史に学ぶ」
968 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 22:01:06.93 ID:GLXZB85w0.net] そもそもコンパイル環境なら、VS Codeすらいらないんじゃ
969 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 22:23:38.77 ID:oaCBMm/O0.net] VSはダメでVSCodeはインストールできるんだ よくわからない環境だな
970 名前:デフォルトの名無しさん [2021/11/17(水) 22:48:30.86 ID:OY6bKJls0.net] 普通の会社で使えるのは2017までなんだよな
971 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 23:11:54.33 ID:SfknQ7Tq0.net] うち2022買ったで
972 名前:デフォルトの名無しさん [2021/11/17(水) 23:14:07.67 ID:iuNg9UQr0.net] まだ2021年なのに?
973 名前:デフォルトの名無しさん mailto:hage [2021/11/18(木) 09:00:28.34 ID:+Wtl3GaA0.net] ジャップには分からんだろうが世界的には9月からはもう
974 名前:2022年だぞ [] [ここ壊れてます]
975 名前:デフォルトの名無しさん mailto:sage [2021/11/18(木) 21:37:43.70 ID:cf0G7PVa0.net] じゃあ日本は4月からもう2022年になってるのか
976 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 01:11:50.72 ID:4qGzfQ8F0.net] コマンドが格納されたListを順番にサーバへ送信し、 1が返ってきたら次のコマンド送信、1以外かTimeoutしたら即中断みたいな処理を ractiveでサクッと書けますか? var cmdList=new List<string>{ cmd1, cmd2, ... }; cmdList .ToObservable() .TimeOut( ・・・ ) .SendCommand() .WaitResponse() .PostRecv(1だったら次のコマンド送信、1以外やタイムアウトなら処理中止); みたいな感じで。。
977 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 22:43:08.40 ID:F7Qzv69PM.net] cmdList .ForEach(x => { if(x.SendAsync(cts.Token).Result == 1 ) throw new Exception() });
978 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 22:58:08.09 ID:YK5Xmj5SM.net] var results = await cmdList .ToAsyncEnumerble() .SlectAwait(async (c) => await c.SendAsync(cts.Token)) .TakeWhileAwait(async (r) => r == 1) ToArrayAsync();
979 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 00:02:36.10 ID:Z3Hc+Mmaa.net] タイムアウトで値や例外が返ってくるタイプだったらいいけど 時間経過で勝手にタイムアウト判定しろよってタイプだと詰みそう
980 名前:925 mailto:sage [2021/11/21(日) 00:41:13.81 ID:7ZBVrJXA0.net] ReactiveExtentions(System.Reactive名前空間 ver5.0)を使ってます。 自分なりに書いてみましたがこのライブラリの使い方がよくわかってない状態です。 (疑問点をコメントに書きました。分かる方教えてください) IDisposable d = cmdList .ToObservable() .Timeout( TimeSpan.FromSeconds( 3000 ) ) .Select( cmd => { var res = this.SendCommand( cmd ) // 自作のコマンド送信関数; return res; } ) .Where( res => res == 1 ) .Subscribe( res => /* ここで次のコマンド送信を行う書き方が分からない*/ res.ToString(), ex => Debug.WriteLine( ex.Message /* Timeout発生時 */ ), ()=> Debug.WriteLine( "Complete" /* 全ての送信完了?それとも1つだけ送信完了? */ ) ); >>935 やはりToAsyncEnumerbleからアプローチするべきなんですかね。。
981 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 00:46:46.14 ID:7ZBVrJXA0.net] Timeout関数の中身は TimeSpan.FromMilliseconds( 3000 ) // 3秒 の間違いでした
982 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 10:42:16.16 ID:XHu2qeE/M.net] Rxは監視を行うもの 時系列に沿って要素が流れてくる時に使うもの なのである要素が流れてきた時に次の要素なんてのはまだ無い 要素が最初から揃ってるListから始めるからわからなくなる 最初から揃ってるなら普通にLinqかforeachを使う Listでなくストリームならこれでおk var d = CommandStream .Select(c => Send(c)) .Timeout(t) .TakeWhile(r => r == 1) .Subscribe();
983 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 11:57:57.31 ID:ceXBGTs50.net] 次元の違う配列ではArray.Copy出来ないのでしょうか。 例) var foo = new int[4]; var bar = new int[3, 4]; ArrayCopy(foo,0,bar,0,4); // 例外発生 "The specified arrays must have the same number of dimensions." 1個づつコピーするしかないのでしょうか?
984 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 12:19:49.36 ID:D7YZScOh0.net] プリミティブ数値型の配列ならBuffer.BlockCopyできるけど まあ多次元配列なんて肩身が狭いもんだから仕方ないね
985 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 12:40:02.71 ID:ceXBGTs50.net] classを配列に保存しているから、BlockCopyもダメなんですよね・・・ あまり数も多くないはずなので、1つずつコピー(代入)していきます。
986 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 13:17:59.80 ID:/7sxHGOs0.net] >>940 若干アンセーフだけど行ごとにならSpan利用すればマネージ型でも出来る for (int i = 0, len2 = b.GetLength(1); i < b.GetLength(0); i++) foo.CopyTo(MemoryMarshal.CreateSpan(ref bar[i, 0], len2));
987 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 13:21:12.71 ID:/7sxHGOs0.net] MemoryMarshal.CreateSpan(ref bar[i, 0], 5000)とかやっても確か例外でないから最新の注意を払う必要はある まぁこうやってもソースの長さがデスト以内であれば問題は生じないけど
988 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 04:59:13.07 ID:/1pFbOYv0.net] 入力を検知したときにメソッドを実行する処理において、 要素Aがnullでなく(エラー防止)、Aの子要素Boolがtrueの場合のみ処理をスキップしたい場合に いい書き方はありますか? !A.Bool でメソッドを実行にしてしまうとAがnullだったときに実行されなくなってしまうので…… ひとまずgotoを使って以下のようにしているのですが、もっとスマートな書き方ありますでしょうか if (Input) { if(A != null){ if(A.Bool){ goto INPUTSKIP; } } Method(); } INPUTSKIP:
989 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 08:06:18.80 ID:OKsF9IR00.net] null条件演算子 null合体演算子 で検索
990 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 08:23:25.29 ID:V78zeb460.net] >>945 こう? if (Input) { if (A != null && A.Bool) { // INPUTSKIP } else { Method(); } }
991 名前:デフォルトの名無しさん [2021/12/12(日) 09:36:50.05 ID:G8rzE1470.net] >>947 それを反転させて if (Input) { if (A == null || !A.Bool) { Method(); } }
992 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 10:16:02.74 ID:2rSkF5hnM.net] >>945 goto 使いたくないと言うなら A が null か、A.Bool が false の時に処理したいってことだから普通に if(A == null || !A.Bool){ 処理 } って書くか>>946 が言うnull条件演算子とnull合体演算子を使って if(!(A?.Bool ?? false)){ 処理 } でいける 個人的にはこの場合だと上の方がわかりやすいと思う
993 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 10:56:54.04 ID:MLGY87ca0.net] 後藤さんが出てくると素人臭が漂ってくるからな
994 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 12:26:50.16 ID:V78zeb460.net] 例外も後藤さんみたいなもんだが
995 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 12:48:33.01 ID:/1pFbOYv0.net] AがnullだったときにORで並べてA.Boolの条件式を使ってしまうとそんなもんないよってエラーを吐くのでは、 と思い込んでいたのですが大丈夫なんですね……! !A.Boolだけで判定したときに怒られたので頭凝り固まってました! ありがとうございました!
996 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 13:09:03.73 ID:I9KyYKSc0.net] >>952 いやショート サーキット評価だからエラーにならないだけ https://docs.microsoft.com/ja-jp/cpp/cpp/logical-or-operator-pipe-pipe?view=msvc-170
997 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 13:17:35.22 ID:/1pFbOYv0.net] >>953 ああーなるほど、ORの場合どれか1つでも満たされてれば実行されるから 左側が条件を満たしてたら右側はもうチェックされないのか!! 良いこと知れました! ありがとう!
998 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 13:23:43.83 ID:V78zeb460.net] vb.netのorだとエラーになる
999 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 13:31:38.41 ID:I9KyYKSc0.net] >>954 >>955 論理演算子2つ並べるのがショート サーキット評価
1000 名前:ネんだけど https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12181009427 次から初心者スレ行ってくれ [] [ここ壊れてます]
1001 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 14:02:55.63 ID:WWmfWzxPM.net] >>955 OrElse 使え >>956 > 論理演算子2つ並べるのがショート サーキット評価なんだけど とか言う玄人w
1002 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 14:06:00.32 ID:a4cuZ/Mwa.net] vb恐ろしいな。そんなのバグの元じゃん
1003 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 15:11:49.02 ID:happ85M4M.net] はあ? C# ⇔ VB.Net --------------------- & ⇔ And && ⇔ AndAlso | ⇔ Or || ⇔ OrElse ってなってるだけやぞ
1004 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 09:12:51.67 ID:7pnzZ4JB0.net] >>945 条件式をネストしたり&でつないだりと複雑にするのは難読性が高くなるから分けたほうがいいだろ どういう条件ならMthod()を呼ぶのか明確に if(Input){ //事前処理 judge=(A==null) ? true: //Aがnullのとき A.Bool==false ? true: //Aの子要素がfalseのとき false; //それ以外 if(judge) Method(); //共通処理 ... }
1005 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 09:51:11.81 ID:g+jxvcxo0.net] >>960 が分かりやすく見えない… >>948 が誰が見ても一目瞭然でいいと思うわ シンプルな条件分岐なんだからこだわる必要ない
1006 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 11:44:51.75 ID:zykNHKxZ0.net] skipするほうが例外的処理だろうからskip条件を明確にしてearly returnしたほうがいいと思う 論理式の細かい書き方よりも意図が伝わるかどうかのほうが大事 if (ShouldSkip(a)) { return; } Method(); bool ShouldSkip(A a) { return a?.Bool ?? false; }
1007 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 14:01:49.98 ID:z2L+bKXw0.net] メソッドにすんのはいいけど、>>945 が入力を検知したときメソッドを実行したいって言ってんだからその通りに書けばいい 設計書通りに条件分岐すりゃいいのに無駄に置き換えて実装する人多いけどなんなんだろうね if(入力検知(input, A)){ Method(); } bool 入力検知(bool input, A a){ return input && a != null && a.Bool; }
1008 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 14:22:24.69 ID:6wRfW5vFa.net] 昼飯食いながら適当だから何か勘違いしてるかもしれないけど、>>945 って要は ある条件を満たした時だけMethodを実行したい、それだけでしょ? だったら四の五の言わずに素直にそう書くのが一番じゃないの。 if( input && (!A?.Bool ?? false)) Method();
1009 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 14:29:51.31 ID:KmNdaGVTa.net] 求めてるのは「もっとスマートな書き方」だからな 主観的な問題だから、俺らが言えるのは「こういう書き方もある」ってのだけ 正解(どれが一番か)を決めれるのは本人だけ
1010 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 14:47:42.73 ID:6wRfW5vFa.net] コードでも文章でも読み手に「要するにそれってどういうこと?」って思わせないのが一番。 これもコードでも文章でもそうだけど、読みにくいものは書いた本人がそこをよく理解せずに書いている。
1011 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 15:06:50.29 ID:WUjUV8JM0.net] ReSharperが薦めるように書き換えたら、何をしてるのかわからなくなった。
1012 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 15:10:10.54 ID:pxTkbBAYM.net] 最近のc#はマルチパラダイムで構文が増えてカオスだ
1013 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 16:35:33.81 ID:zykNHKxZ0.net] >>963 ,964 >>945 を読む限りでは入力を検知する処理と 検知した後に特定の処理をスキップするかどうかを判断する処理は別じゃないのかな? 「A.Boolがtrueなら入力を検知しない(or 入力を無視する)」ってことなら 入力よりも先にA.Boolを確認するよね
1014 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 16:52:41.40 ID:KmNdaGVTa.net] ちなみに回答ざっと見てこんなだな こういうのはコードが長くなっても動作が分かりやすい方がいいと思う >>947 ,948,960 おk >>962 ,963 バグあり
1015 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 22:23:58.46 ID:s0FccnDO0.net] >>968 それ。言語の表現力が豊かでも、自分やチームで一貫性を担保するのが面倒ξ
1016 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 09:16:58.78 ID:cLXTODpXM.net] >>971 そして、コーディング規約が底辺プログラマーに合わせられて生産性が低下する
1017 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 20:46:07.43 ID:4rMew3mV0.net] どうせ好き勝手に言語機能使って上がる生産性なんて微々たるもん
1018 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 23:18:34.83 ID:gu+YKYdX0.net] .net の 1.1 で書くとめちゃくちゃ不便で絶望するぞ
1019 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 23:43:50.97 ID:5qKKFixV0.net] linqがある.NET Framework3.5ですら今これでやれって言われたら不便に感じるしなぁ 使えるものは使わせてもらった方が全然楽だわ
1020 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 08:20:32.57 ID:YtxEX99t0.net] 色々使えた方が個人的に楽だと思うのは否定しないが、もっともらしく「生産性が上がる」とか言っちゃうと 意外とそうでもなかったり。
1021 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 09:41:14.43 ID:flSodCtX0.net] >>974 特にList<T>が無いのはキツイわ
1022 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 12:10:36.77 ID:KtX6zlRp0.net] 心配しなくても今どき1.1で書いたり書かされたりすることはないでしょ
1023 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 16:03:58.38 ID:w2vh5jVl0.net] 1.1とか極端すぎるやろ
1024 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 16:14:56.34 ID:Jy+USlABM.net] 2.0の知識で止まってるヤツも多いよね
1025 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 16:57:55.56 ID:RMHVQ2YW0.net] さすがに今どきvar使うなとかLINQ使うなとか言われないよね?
1026 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 17:25:02.67 ID:ik5KT4gs0.net] >>981 var使うとわからなくなるというのは名称が明示的になってないだけだと思うわ
1027 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 17:31:22.22 ID:KBNxuXv0M.net] >>982 ハンガリアン記法?
1028 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 18:19:16.59 ID:UGnWEqDI0.net] MS公式はvar推奨してるけどさすがにintとかstringとか基本的な型はvarにはしないな
1029 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 21:30:02.16 ID:lA94GyTo0.net] 明示的に型を書かないとダメなところ以外全部varで書くよ
1030 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 21:44:12.20 ID:M2QFYQSl0.net] 最近はnew()で書けるようになったから、極力varはやめてる Hoge hoge = new(); 実装当初の想定通りlinqの戻りくらいかなvar、使うの。
1031 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 23:22:27.06 ID:l+MEhncN0.net] new()使えるのってc#いくつからだっけ
1032 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 23:43:54.17 ID:NZjG441V0.net] はやくおれのレベルまで上がって来い 上で待ってるぞ
1033 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 00:21:19.35 ID:R2Peltay0.net] new()で書けるようになったけど、コンストラクタで初期設定値渡すようにしちゃうから全然使わんなぁ。 セッター潰してコンストラクタで設定するのが好き
1034 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 07:48:14.53 ID:Ymr34XoE0.net] >>987 C# 9.0
1035 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 09:44:30.84 ID:P4pOcLuS0.net] C#がどんどんボクのしらないものになっていってる いっそC##やDと名乗っていただきたい (Dは既にある、は受け付けない)
1036 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 10:15:25.85 ID:80W3ywqF0.net] C#に毛が生えた程度だろ C丼でええがな
1037 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 10:54:52.18 ID:Ni3FtdydM.net] c井
1038 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 11:01:26.24 ID:DM4zUQcN0.net] C⛩
1039 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 11:42:40.19 ID:plhBUTFD0.net] C升
1040 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 11:47:41.44 ID:e2PzMi3oM.net] >>991 ほんと、氷川きよしくらい変わってしまった
1041 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 23:46:42.90 ID:vtDDQtO+0.net] if(item is {} a){ ... } null判定でこんな書き方あるんだな。Resharperさんに提案されて初めて知ったわ。 個人的にはあまり使いたくないけど。
1042 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 00:40:01.77 ID:fAwtu2PR0.net] >>997 それやるとaの色がローカル変数色にならず白のままになるのが不満なんだけど俺の環境だけか?
1043 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 02:39:12.84 ID:KpFo6Hw/0.net] C林
1044 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 11:21:38.48 ID:b89m5ifd0.net] >>997 C#9なら if (item is not null) って実に直感的に書けるから早くこっちにこいよ… ところでその式でaで受ける意味なくね?
1045 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 13:42:40.65 ID:KpFo6Hw/0.net] C極
1046 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 09:44:58.73 ID:QHfeHH9E0.net] WinFormsを独学でやっているのですが教えて下さい そこそこの規模のソフトは作れるようになってますが VSで開発していくうえで、フォルダ構成ってどう考えればいいですかね いままではDB関連をDBフォルダ フォームはFormにまとめてさらにその中に機能別にフォルダを 細かいクラスファイルはClassというフォルダに DBとの受け渡し(sql書いてFormとの受け渡しModelみたいなもの?)は Modelというフォルダにまとめています プロの皆様はチームで作っていかれる際に 会社によりけりかもしれませんが一般的なフォルダ構成の考え方ってあるんでしょうか
1047 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 09:58:37.55 ID:eMi6YEPC0.net] そんなもの存在しないから適当でいいよ まぁあえて口出しするならFormフォルダはFormクラスと名前が被るからやめとけって位かな
1048 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 10:00:48.95 ID:n0pWJPWXa.net] なんのフォルダなのか理解できない プロジェクト(visual studio上でのプロジェクト)内じゃフォルダ切ることはないな プロジェクトがある程度大きくなったらクラスライブラリに分ける
1049 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 10:16:13.92 ID:UEQjoSys0.net] シングルアセンブリ構造なのかな
1050 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 10:33:08.48 ID:QHfeHH9E0.net] >>1003 そうなんですね、気をつけます >>1004 たとえば画面数でも100超えて、機能部分のClassファイルも100越えてくると いちいち該当ファイル探すのが面倒でフォルダに分けたって感じです 前はPHPのフレームワークとか触ったときは たとえばcontroller model viewとフォルダも階層構造みたいになっていて そういう感覚もあります チームでやられていると、どこに何のファイルが散らばっているか わからなくなったりしないのですか? きちんと仕様書があるから関係ないのですかね やっぱりクラスライブラリ(DLL化?)もちゃんと理解しないと駄目ですよね 一人で作ってるので、DLL化するほうが手間な気がして避けてました
1051 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 10:44:47.17 ID:n0pWJPWXa.net] どこに何がは命名の問題もあるんじゃないかな classも変数も先頭、末尾にそれが何か分かるように名前つけてるから名前順にソートされてればすぐわかる
1052 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 10:53:09.81 ID:UEQjoSys0.net] >>1006 機能ごとにProjectを作るんだよ。
1053 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 1004日 15時間 55分 34秒
1054 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています