- 1 名前:デフォルトの名無しさん mailto:sage [2017/01/28(土) 16:46:53.58 ID:op86qfG/.net]
- ■Visual Studio 2015 Community & Express (無償の統合開発環境)等はこちら
www.visualstudio.com/downloads/ ■コードを貼る場合はこちら ideone.com/ ■前スレ C#, C♯, C#相談室 Part91 echo.2ch.net/test/read.cgi/tech/1467211515/ ■次スレは>>970が建てる事。 建てられない場合は他を指定する事。
- 652 名前:デフォルトの名無しさん mailto:sage [2017/03/23(木) 23:47:48.47 ID:Ei+8urX3.net]
- てす
- 653 名前:デフォルトの名無しさん mailto:sage [2017/03/23(木) 23:50:59.28 ID:Ei+8urX3.net]
- >>617
ちげーよ。まあ結論としては、簡単に出来るけどC#はやらなかった、というだけだ。 そして俺はこの選択は間違いだったと見るね。 実装例としては以下。(C#の文法は知らないので真似てみた。適宜脳内修正よろしく) //ここにコードを書いたのだが、403 Forbidden になるぜorz mutexを使う場合、mutex確保中に他ロックを取りに行かなければデッドロックはしない。 或いはthread_IDを付けておいて、UIなら直接変更、その他ならinvokeにしてもいい。 いずれにしても、ユーザー側にはinvokeが見えなくなる(隠蔽される) これの方が良かったと思うよ。いちいち混乱しなかった。 そちらの例は、2人のユーザ間でのデッドロックであって、 俺が今話しているUI/タスクスレッド間の例じゃないじゃん。 なお、解法は、普通に「両方取れなかった場合は一旦全部リリースしてリトライ」でいい。 ただし今時はそれはDB任せで、ユーザ側でのロック管理なんてしない(はず)
- 654 名前:デフォルトの名無しさん mailto:sage [2017/03/23(木) 23:52:19.70 ID:FkdET+B0.net]
- スレ読み返すと細かいことはどうでもいいけどとにかくInvokeしたくないプロパティでアクセスさせろって暴れてる変な子が居るように読めるんだが
Invokeを適当なプロパティでラップしろで終わる話じゃないのこれ?
- 655 名前:デフォルトの名無しさん mailto:sage [2017/03/23(木) 23:53:41.78 ID:u0oYY3Ci.net]
- >>622
ケースバイケースだろ そもそも >>617 は説明のためのサンプルだから不満なら両方書き込みのケースを考えればいいだけ >>623 マルチスレッドGUIフレームワークに夢見てる奴がいるからでしょ w
- 656 名前:デフォルトの名無しさん mailto:sage [2017/03/23(木) 23:54:44.80 ID:Ei+8urX3.net]
- >>626
その通りだ。そしてそのコードを貼ろうとしている。 つか、貼らなくても分かるんならもういいね。
- 657 名前:デフォルトの名無しさん mailto:sage [2017/03/23(木) 23:57:20.64 ID:u0oYY3Ci.net]
- >>625
> 俺が今話しているUI/タスクスレッド間の例じゃないじゃん。 そんなことを言ってるのお前だけ >>583 をちゃんと読み返せよ
- 658 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 00:00:02.01 ID:Lq7k+m1v.net]
- >>622
そんな力業してないでリーダー/ライターロック使いなよ。 比較のループとかデータ量次第ではCPUパワーの無駄遣いだろ。
- 659 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 00:07:18.67 ID:P/PrHj1p.net]
- 既製品に文句があるなら自分で作ってgithub
これができないプログラマはいつまでも三流のまま コードを書き使ってもらい持論を証明するんだよ
- 660 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 00:13:35.16 ID:OAgok+ci.net]
- Windows Formsの場合は、単純にFormがActiveXコンテナになり得るから、
アパートメントの制限に対応するために用意された、実装上の都合による物だよ おそらく、ロックの問題ではなく リソースリークを根本的に解決する方法がないから用意された手続きなんだよ。 ラップして
- 661 名前:解決できると思うなら、それで良いんじゃないか []
- [ここ壊れてます]
- 662 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 00:14:57.73 ID:gW3AbLz/.net]
- だからUIスレッドが気になるなら、wpfでMVVMやれば解決でしょうに
- 663 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 00:38:36.13 ID:9w5lj4S/.net]
- UWPで非同期メソッドとかTask使ってるけどすごい不毛。
非同期メソッドの完了を基本的にはawaitで待つから 非同期メソッドを複数回実行するような場合だと 全部同期呼び出しにして全部まとめてTask.Runしたい。
- 664 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 00:50:30.06 ID:RtKD05ZR.net]
- >>630
俺は622じゃないけど。 従来型のロック機構だとコストが高すぎる場合もあるんだよ。 俺は詳しくないけど、多分Erlangとかの世界で。 mutex等は共有メモリへの書き込みが生じるから実はかなり重い。
- 665 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 02:13:48.63 ID:5bMFJR3b.net]
- 馬鹿にマルチスレッド。
- 666 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 02:33:18.25 ID:99176uAd.net]
- 結局少しでも重たい処理は全部ワーカーにしなけりゃならないから
UI弄る時だけInvokeした方が見通しすっきりするんだよねw async/awaitとか使うよりは ここがUIスレッドですってはっきりわかる。
- 667 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 02:44:50.15 ID:7cONiVN5.net]
- ここはまだWinFormsの時代かw
- 668 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 02:50:50.13 ID:99176uAd.net]
- WPF?誰が使うか
そんなもんが必要なモバイルなら普通にJavaScriptにWebアプリで行くわって感じだねw
- 669 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 03:11:50.24 ID:m/Lurhmo.net]
- >>612
progressBar.Value+=1 としたときに 1.読み込み 2.加算して書き込み の処理が必要とすると、1と2の間に別スレッドが書き換えを行うことで結果が矛盾する Interlocked命令を使えばそれは防げるけど、MaxValueを超えないかとかの判定が入るので結局ロックが必要 この程度ならまだしも、裏でWin32やCOMを叩いてるコントロールはさらにややこしい
- 670 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 03:44:24.59 ID:5bMFJR3b.net]
- レベル低すぎて引くわ C#、LINQ、WPFが高速とか言ってたおれ最先端君が戻ってきたのか?
- 671 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 06:28:32.59 ID:Cpc8yNoh.net]
- 高速(で書ける)
- 672 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 07:23:36.10 ID:vGZXBTd1.net]
- 高速で壊れるの間違いだろ
馬鹿はphp書いてろ
- 673 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 07:56:00.46 ID:P/PrHj1p.net]
- >>640
壊れても遅くてもいいからとにかくプロパティで書きたいというのが要件
- 674 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 08:24:47.57 ID:gW3AbLz/.net]
- データの保証がないコントロールなど、標準品ではありえないから
頑張って作ってくれとしか言いようがないな
- 675 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 12:55:58.77 ID:99176uAd.net]
- >>645
横だけれど、そもそも問題としてValueをインクリメントする事自体が余り良くない考え方かもね。それは表示と処理が分離できていないから。 カウント処理のカウンターはUIがもっているべきじゃない。 別途カウンターを作って、結果だけをUIに代入すべきだ。 このように設計されているなら、破損無視で書き込んでもうまく動作するだろうと思う。 問題は、それをすべての人に要求するのは難しい、自分の忙しくなったらきちんとせずにインクリメントしてるしなw という事なんだな。
- 676 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 15:14:34.51 ID:suDsBIm1.net]
- やっとまともなやつ来た
- 677 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 16:13:38.13 ID:m/Lurhmo.net]
- >>646
今もそうなってるじゃん ProgressBarクラスがカウンターを持ってて、ネイティブのmsctls_progress32にメッセージを送って表示を更新してる ぜひスレッドセーフに再実装してみてくれ
- 678 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 18:30:43.13 ID:kZHdS/d5.net]
- >>646
> カウント処理のカウンターはUIがもっているべきじゃない。 そんな低レベルな話をしてるのは ID:Ei+8urX3 だけだから、お前らもうでてくるな
- 679 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 19:42:33.91 ID:RtKD05ZR.net]
- >>640
> 結局ロックが必要 いや、要らん。正確には、要らない組み方はある。 アトミックはデータを構造体にして参照を持つことで解決出来る。(一発ライト) レーシングはインミュータブルとCASで解決出来る。x86ならCMPXCHG命令。 具体的には以下。 1. まず有効な値かどうかを先に判定する。(これは今も先にやっているはず) 2. 書き換える場合、元データのポインタをローカルにまず確保する。 3. 上記旧ポインタから参照して、書き込むデータを new ProgressBarData() で新しく作る。(インミュータブル) 4. 本体のポインタをCAS命令(LOCK付き)で差し替える。 5. 失敗した場合は3からリトライする。(CAS命令の結果に最新ポインタが入っている) この方法だとメモリを余分に食うけど、ロックは要らなくなる。 (なおErlangは共有メモリ無しで全て通信という別解決方法だった) いずれにしても、やりようはあるんだよ。どこにコストを掛けるかという話で。 そもそもGUIなんてレーシングしても問題ないようにも組めるし。 (ProgressBar.value += なんて要らない。 = だけでも組める。>>646に同意) その上で、invokeなんてユーザーに見せる必要あったのか?というのが疑問。 .NETはVC++でも使うから少しでも速い方がいいという需要もあるのかもしれんが、 C#のノリならここは隠蔽して欲しいところでしょ。GUIなんて極限まで速い意味はないし。 ラップしてもいいし、上記のようにロックフリーにしてもいい。 (もちろんユーザがやってもいいんだが、そういう言語じゃないでしょ) https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%9A%E3%82%A2%E3%83%BB%E3%82%A2%E3%83%B3%E3%83%89%E3%83%BB%E3%82%B9%E3%83%AF%E3%83%83%E3%83%97 https://ja.wikipedia.org/wiki/Lock-free%E3%81%A8Wait-free%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0 つかいつからお前らこんなに馬鹿になったんだ?ふらっとから混ざったのか? ロックの設計の仕方を知らないのはお前ら全員じゃねーかよ。
- 680 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 19:51:21.19 ID:9LJ2CaVF.net]
- >>650
なーんかしょうもない話を延々続けて頭悪そうだけど、 特に理由がない限りわざわざスレッドセーフに作らないのはGUIに限らんって何度言えばわかるの? 馬鹿なのかほんと
- 681 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 19:54:06.25 ID:HsxCjAja.net]
- >>650
2と3もロックされなければ既に破棄され別の領域として 再利用された誤った情報を読み出す可能性があるだろ
- 682 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 19:54:24.48 ID:9VMQOfeX.net]
- MSにとっての実装コストの問題でもあるしな
MSが苦労するのはいいとしても、その結果激増したバグに悩まされるのはお前らだぞ
- 683 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 20:07:48.70 ID:RtKD05ZR.net]
- >>651
お前がinvokeをウザイと思わなければそれでいい。 俺はinvokeをウザイと思うからMSが隠蔽しとけ、と思う。 多分後者の方が多いだろ、この件に関しては。 >>652 ついにC#がGC言語だと知らない奴も出てきたか、、、 >>653 MSはこの程度ならきっちり実装出来るよ。 というかMSって比較的まともだと思うぞ。
- 684 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 20:09:50.64 ID:UKoqSEXl.net]
- BeginInvokeはどうするの?
- 685 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 20:15:53.11 ID:RtKD05ZR.net]
- というかここでも単発は池沼なんだな。
いちいち言ってることがアレだし。
- 686 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 20:24:26.17 ID:RtKD05ZR.net]
- つかまあ、百歩譲って他のコントロールならいいよ。
ただ、ProgressBarなんてどう考えてもタスクスレッドから書き換えられるのが仕様だろ。 (むしろUIスレッドから書き換えることがない) それをいちいちinvokeはねーだろ。 せめてProgressBarだけでも対応しとけよと思うだろ普通。
- 687 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 20:27:59.45 ID:9LJ2CaVF.net]
- >>656
アレなのはお前だよ馬鹿... しかも重症のな。 何度も言うけど、こんなのはweb上にあるようなマルチスレッドの入門記事レベルの話だ。 そもそもスレッドセーフってどういうことなのかすら理解してないし、自分でそういうコードを書いたこともないだろお前。 しかし、
- 688 名前:こういう馬鹿に限って偉そうなのは何なのかね []
- [ここ壊れてます]
- 689 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 20:32:42.95 ID:RtKD05ZR.net]
- 皆さん、今からスレッドセーフ大先生の講義が始まります。ご静聴下さい。
ではよろしく>>658
- 690 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 20:57:32.53 ID:UKoqSEXl.net]
- >せめてProgressBarだけでも対応しとけよと思うだろ普通。
ProgressBarを対応させたら○○も対応させろとか言い出す人が出ると思うでしょ普通
- 691 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 21:56:51.21 ID:vGZXBTd1.net]
- 馬鹿+偉そうときたから例外を握りつぶすニキだな
- 692 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 22:04:34.44 ID:vGZXBTd1.net]
- ああでも今回はさすがにClickOnceは危険ニキを支持だな
>MSならこの程度はきっちり実装出来る ここが一番面白かった
- 693 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 22:13:22.45 ID:RtKD05ZR.net]
- つまり、俺が言いたいのは、以下ね。
>>559 > invokeってフォームに限ってどうして必要なのですか? 老害: それがしきたり。 ゆとり池沼連呼リアン>>658: スレッドセーフ!スレッドセーフ! 俺: MSが馬鹿だから。 ゆとりって連呼リアン程度の知能しかないよなマジで。 そもそも俺の>>650は>>589(俺ではない)とほぼ同じ内容だぞ。 お前ら馬鹿が付いて来れてないから書き直しただけでね。 お前らが589を最初から理解していればもっとマシな議論だったろうさ。
- 694 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 22:24:18.31 ID:9LJ2CaVF.net]
- だからスレッドセーフじゃないのはControlのメンバだけじゃないって言ってるのに懲りない奴だな
馬鹿なのはMSじゃなくてお前だっての馬鹿
- 695 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 22:36:30.53 ID:9LJ2CaVF.net]
- Control「だけ」がメンバをUIスレッドからしか呼べないとか訳の分からん錯覚をしているのは、
Controlのメンバが非ユーザーコードからも呼ばれることを理解してないからだろうなたぶん
- 696 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 22:41:45.59 ID:RtKD05ZR.net]
- スレッドセーフ君はやはり連呼リアンであったか、、、
お前がそう思うんなら(ry
- 697 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 22:42:26.38 ID:9LJ2CaVF.net]
- 馬鹿な上にネトウヨって人生終わってるな
- 698 名前:デフォルトの名無しさん mailto:sage [2017/03/25(土) 01:12:27.10 ID:66tFvNtY.net]
- >>657
こんなもんで余計なパフォーマンス食われるのも嫌な感じだしね スレッド無視で叩きこめるならその方がありがたい物ではある。 インクリメント問題くらいならこっちで対処するわって感じですな。
- 699 名前:デフォルトの名無しさん mailto:sage [2017/03/25(土) 01:17:38.46 ID:66tFvNtY.net]
- ああ、そういえば高負荷バックグラウンドスレッドで
progreassBarの操作をasync/awaitでブチかましてスレッドプール爆発させてた新人いたな(笑) 凄い困ってたけど、きっと何が何だか分からなかったんだろうな。
- 700 名前:デフォルトの名無しさん mailto:sage [2017/03/25(土) 01:39:16.42 ID:O6oCv4KM.net]
- >>668
そもそもコードの設計論から言ってもワーカースレッドからUIを操作するなんてありえない。 UIに依存するモデルってどんな糞設計だよ。 モデルにSynchronizationContextとか持たせてUIスレッドに同期したイベントで通知させるのは 設計としてありだけど、直接コントロールをいじるとかありえん。 それも気に入らないならUI側が能動的にタイマーでも使ってモデル側を読めばいいだけ。
- 701 名前:デフォルトの名無しさん mailto:sage [2017/03/25(土) 04:16:02.72 ID:++OH//Pd.net]
- VB上がりにモデルなんて概念ないからw
- 702 名前:デフォルトの名無しさん [2017/03/25(土) 09:54:01.33 ID:QDpQza6M.net]
- .NETの質問したいんですがここで大丈夫でしょうか?
とりあえずします。 PictureBoxのPaintイベントでImageプロパティを再設定する処理などをしてるんですが どうもMessageBoxの挙動がおかしくなってます。 フォームより後ろに表示されてしまって操作不能になってます。 とりあえず通常のメッセージボックスの場合はパラメータを弄って強制的に全面に表示させてますが 困るがSaveFileDialogなどで上書き確認のメッセージボックスが表示された時です。 この場合も後ろに表示されてしまって操作できない
- 703 名前:のでどうしようもないです。
これを回避する方法はどうやればよいんでしょうか? Paintイベントの中身を消去すれば普通に表示されますが出来ればそのままでメッセージボックスも前面に表示させたいです。 [] - [ここ壊れてます]
- 704 名前:デフォルトの名無しさん mailto:sage [2017/03/25(土) 09:57:11.64 ID:iGx2aDuI.net]
- Paintイベント内の処理がおかしいんだろ
俺たちはエスパーじゃないんだから、まずそれがどんなコードか教えてくれよ
- 705 名前:672 mailto:sage [2017/03/25(土) 09:57:40.89 ID:QDpQza6M.net]
- すいません。自己解決しました。
Paintイベントで毎回PictureBoxのImageプロパティを再設定してるのが原因でした 下記のように条件を入れてやるだけで回避できました。 if(pic.Image != img){ … }
- 706 名前:デフォルトの名無しさん mailto:sage [2017/03/25(土) 09:59:45.97 ID:swqPfyBg.net]
- だと思った
- 707 名前:デフォルトの名無しさん mailto:sage [2017/03/25(土) 10:45:00.80 ID:omxknQTj.net]
- DataReaderを使って
while(await ReadAsync().ConfigureAwait(false)) { ... } って書いてるライブラリがあるんだけど 件数が多くなりそうなループでasync/awaitするとタスク生成とコンテキスト切り替えのオーバーヘッドで逆にパフォーマンス悪くなったりしないもんなの?
- 708 名前:デフォルトの名無しさん mailto:sage [2017/03/25(土) 11:08:32.17 ID:oe75j5bC.net]
- >>676
ReadAsync使う時点でそれらよりデータソース読み取りの方がコスト大と作者が判断しているんじゃないかね MemoryStreamに対してReadAsyncとか使っているなら知らんけど
- 709 名前:デフォルトの名無しさん mailto:sage [2017/03/25(土) 11:09:13.59 ID:kGpqWpaU.net]
- >>676
そりゃ呼び出しのオーバーヘッドは増えるだろうけど、それが問題になるかどうかは別だ パフォーマンスという言葉を安易に使うのはやめよう 君はバッチ処理をしてるのかオンライン処理をしてるのかストリーミング処理をしてるのか、 そのライブラリの方はどういう使われ方を想定してるのか、 処理の規模はどれくらいか パフォーマンスってのは結果的に目的をどれだけうまく達成できたかであり、一面だけを見て判断できるものじゃない
- 710 名前:デフォルトの名無しさん mailto:sage [2017/03/25(土) 11:11:43.78 ID:2T3avjLL.net]
- パフォーマンスって何を指してるんだ
処理速度出すためにasync/await使うわけじゃないのは理解しているよな?
- 711 名前:デフォルトの名無しさん mailto:sage [2017/03/25(土) 11:13:12.94 ID:2T3avjLL.net]
- 具体的に何を指すんだと問い詰めたい単語
パフォーマンス スマート
- 712 名前:デフォルトの名無しさん [2017/03/25(土) 12:12:06.97 ID:AJzcpICN.net]
- 話題が長引いても安心な匿名掲示板「Anontown」 [無断転載禁止]?2ch.net
echo.2ch.net/test/read.cgi/tech/1490366833/
- 713 名前:デフォルトの名無しさん mailto:sage [2017/03/25(土) 13:35:04.97 ID:66tFvNtY.net]
- >>671
とりあえず動くもの作るからな、クリックして必要な事をかける構造になっている以上 次に起こる事は、必然的にスレッドプール爆発なんだわw
- 714 名前:デフォルトの名無しさん mailto:sage [2017/03/25(土) 14:21:07.83 ID:pA2Zx06R.net]
- 馬鹿がプログラムを書かなければ解決
- 715 名前:デフォルトの名無しさん mailto:sage [2017/03/25(土) 14:49:04.12 ID:66tFvNtY.net]
- そういうヤツはHaskellでもやってろって話だよ
C#はそういう言語じゃない
- 716 名前:デフォルトの名無しさん mailto:sage [2017/03/25(土) 15:02:20.11 ID:OnvCww5G.net]
- 勝手にそういう言語とか決めないで欲しいな
糞袋の観測範囲で
- 717 名前:デフォルトの名無しさん [2017/03/25(土) 17:12:28.65 ID:P4wL6N6L.net]
- webbrowserのdocumenttextでhtmlを文字列で直接埋め込みたいんですが
ローカルに設置したcssやjsファイルを読み込む方法がわかりません。 どこに配置してどのように読み込めば良いか ご存じの方教えていただけますでしょうか? どうぞよろしくお願いします。
- 718 名前:デフォルトの名無しさん mailto:sage [2017/03/25(土) 18:18:23.98 ID:gz8AHGhh.net]
- Data URIスキームで埋め込むとか
- 719 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 00:26:03.65 ID:b1vqxh2T.net]
- HaskellといえばAI。つまりそういうこと。
- 720 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 11:09:36.56 ID:WUrKAJma.net]
- こんな感じか?
livedoor.blogimg.jp/lad
- 721 名前:ymatome/imgs/7/6/76ec3c1e.jpg []
- [ここ壊れてます]
- 722 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 12:41:56.97 ID:Uwt+/Suh.net]
- >>670-671
釣りか?マジで言ってるのなら お前ら別の意味でのスタティックおじさんになってるぞ。 まあC#erなんてそんなもんだと今回思い知ったが。
- 723 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 13:20:23.73 ID:x9SVAeuT.net]
- progressbarなど、多くても100回程度書き換えれば充分なわけで
たかが100回のUIスレッド切り替えでオーバーヘッドとか笑っちまうな スレッドを無視するより書き換え回数減らしたほうが余程生産的だし簡単だ
- 724 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 13:20:26.49 ID:hVl7ZVni.net]
- >>690
そもそも今時Windowsのデスクトップアプリなんか作ってる時点で スタティックおじさんであることを自覚したほうがいいよ
- 725 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 13:24:42.49 ID:TjDGXANh.net]
- 暴論w
- 726 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 13:28:02.28 ID:WQ8v1gdY.net]
- みんなコード書くよりレッテル貼りの方が得意なんだな
- 727 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 13:48:27.23 ID:7xcWRiGy.net]
- プログレスバーはカウントアップが面倒なのかいつからかグルグルするモードがついたね
ハングアップしてないかわかればまぁいいんでそればかりつかってる
- 728 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 13:59:10.19 ID:TjDGXANh.net]
- いつ終わるか分からない処理もあるから。
- 729 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 14:02:35.77 ID:Lixhnbpu.net]
- >>695
それ追加されたの.Net2.0だから10年以上前だよ
- 730 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 14:03:21.73 ID:xbLciI4B.net]
- 鬱陶しいから来週まで続けるなよ
でないとこのスレ埋め立てるからな
- 731 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 14:13:37.56 ID:Lixhnbpu.net]
- 4月1日までか…長いな
- 732 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 14:19:29.01 ID:Uwt+/Suh.net]
- つかお前ら落ち着けw
俺は>>650だよ。そして>>640含むお前ら大多数よりは賢いことはもう示したろ。 で、>>670-671も同様にアホっぽく見える。 しかしマジでそう思っているのなら、それを示せば多少は教えてやるよ、ということだ。 何か最近、煽ったりカニンガムの法則を試しているような奴も多いんでね。 それに付き合わされるのはウザイ。 俺の意見は ID:Un9Q+jtZ とは完全には一致はしないが、 6割くらいは一致するし、彼が何を言いたいのかは分かる。 既に言ったとおり、650も>>589の代弁に近い訳でね。 お前らは>>597(重ねて言うが俺ではない)の意味を理解出来ていないように見える。 そこでお題を出してやる。 これをお前ら流の「美しい実装」をする方法を述べてみろ。 駄目出ししてやるよ。 フーリエ変換をする関数 calc_FFT があって、 計算に時間がかかるので、プログレスバーに進捗状況を表示したい。 参加する人はどうぞ。
- 733 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 14:24:02.60 ID:13fTqv5I.net]
- >>700
まだやる気かよ。 だからねえ、そういうのは>>670に書いた2つのやり方のどちらかを選択するのが普通。 どんな方法論を取るにしろ、モデル側から直接UI部品をいじるとかありえない。 依存方向は一方通行にするなんて基本中の基本だろ
- 734 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 14:32:06.72 ID:13fTqv5I.net]
- この元の話題、つまりUI部品のメンバーがUIスレッドからしかアクセスできないように
なっているのは不合理かどうかって話も、はっきりいって問題提起した奴が何も分かってない馬鹿なだけ。 こういう仕様は十分に合理的。
- 735 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 14:55:35.58 ID:V5FfYo93.net]
- だからVB上がりにモデルなんて概念はないって言ってんだろが
通じない話を繰り返すな 壊れて向きが変わらなくなったチョロQかテメー
- 736 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 15:00:04.71 ID:7VPGG3Vy.net]
- モデル概念
- 737 名前:知らないおじさんや初心者以前に
エキスパートからしてみてもC#を使いたい動機は素早く手軽に組みたいという動機にあるからね。 時間をかけてガチガチにやらないかぎり上手くいかないとか、それは勘弁願い下げたよな。 [] - [ここ壊れてます]
- 738 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 15:09:11.18 ID:N/oWszN2.net]
- うぇーゴミ虫の狭い観測範囲で勝手にC#ユーザーの動機を定めちゃう?
いくら寛容な人間様でも下等生物と一緒にされるんでは不愉快ですわ
- 739 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 15:14:26.60 ID:7VPGG3Vy.net]
- お気に召さなければC++でも使ってみたらどうよ?
templateメタプログラミングならなんでもお望みの書き方でできるよ。
- 740 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 15:37:28.26 ID:Uwt+/Suh.net]
- ちなみに、回答は後日ね。
こういうのは急いで出来る必要はないから、じっくり考えてみてよ。 当たり前だが俺は>>670-671よりもマシな解決方法を持っている(つもり) >>701 採点結果: スタティックゆとり乙 君はどういう依存が悪いのかを理解出来ていない。 そしておそらくUIはスタティックだと信じている。 ただしMSも同様に馬鹿だった。だからFormは糞なのも事実。 しかし世の中には他の実装方法もあるって事さ。 君達がロックフリーの世界を知らなかったようにね。 ヒントとしては、 > どちらかを選択する ここが間違っている。 何通りも用意するとか、ラップして変換するとかは、明らかに無駄だよね。
- 741 名前:デフォルトの名無しさん [2017/03/26(日) 15:46:45.12 ID:bdiJ1zQR.net]
- >壊れて向きが変わらなくなったチョロQかテメー
斬新な煽り方だなw
- 742 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 16:30:36.77 ID:E6fNHh8L.net]
- ネトウヨとかもそうだけど、頭悪い奴に限って、
「この俺だけが世の中の真実に覚醒した!!!この世は嘘と欺瞞にまみれていて(笑) 俺以外の連中は馬鹿ばかりだ!!!」 ってなるのは何なのかね。 まあ2chにはこういう単細胞で自分を客観的に見られない奴いっぱいいるけど、 >>707みたいにそういうタイプはプログラマとか知的な仕事についてはいけない人だよな本来
- 743 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 16:33:32.75 ID:7VPGG3Vy.net]
- 彼が相手している誰かさんの方がむしろヤバイという客観的印象ありなんですけどねw
- 744 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 17:00:26.56 ID:nZrkbKSG.net]
- ロックフリーおじさんはスタティックおじさんを馬鹿にできんだろ
○○おじさんが馬鹿にされる本質は金のハンマー信仰にあるのだから
- 745 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 17:09:41.70 ID:E6fNHh8L.net]
- 銀の弾丸を求める者は少なくとも倒すべき「怪物」の存在には気が付いているが、
彼はそのレベルにすら達してないよたぶん。 背後にあるトレードオフに気が付かないから不条理でないものが不条理に見えてしまう 自分の馬鹿さ加減を自覚できないだけ
- 746 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 18:57:25.59 ID:iTS+fWTZ.net]
- >>700
ダメ出しなんて要らん どや顔で語りたいならぐうの音もでない実装を晒しやがれ
- 747 名前:デフォルトの名無しさん [2017/03/26(日) 19:11:26.31 ID:iZtP8D0n.net]
- 初歩的な内容ですが。
RxのISchedulerインターフェースを実装したいのですが、ScheduleメソッドのDateTimeOffsetを引数にとるオーバーロードとTimeSpanを引数にとるオーバーロードって どのように実装すればいいのですか。 本家Rx.NETのリポジトリにあるコードをいくつか見ましたが、 なんとなく、指定された時間の分だけ遅延させて デリゲートをInvokeさせるというのは分かりましたが、この2つのオーバーロードの具体的な実装方法を文章で書いてあるところを教えてください。 あと、戻り値がIDisposableなんですけど、これはスケジュールの解除を行うDisposableでいいですよね。
- 748 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 20:02:08.99 ID:YTmW3NMW.net]
- >>707
利根川さんきたーーーーw
- 749 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 20:06:43.37 ID:Uwt+/Suh.net]
- >>713
俺は語りたいわけじゃない。 だから君の意見を尊重して、俺の答えは書かないことにするよ。 君らは一生馬鹿なままで過ごせばいい。 C#にとどまっている限り、回りもみんな馬鹿だから、ばれないで済むだろう。 ただ、知っている奴が見たら、お前らは本当に間抜けなことをしている。 だけど、そういうのは自分でいろいろ考えないと身につかないんだよ。 だから自助努力する奴に対してはサポートしてやろうとしただけ。 とはいえ、俺の案も他言語では普通に使われる手だから、探せば出てくるはず。 それは君たちで探すんだね。 俺はくだらない煽りには本当に辟易している。 そのエネルギーは正しくプラスの方向に使うべきだよ。 マイナス方向に使って煽るのではなくてね。 君は何がしたかったんだ? 俺の面目を潰したかったのなら、俺より素晴らしい実装を先に言ってしまえばよかっただろ? 或いは他の人から、もっと素晴らしい実装が出てきたら、君にも糧になっただろ? そうやってプラスの方向にお互いに高めていくべきなんだよ。 それを、「じゃあ教えてやらない」と言われる話の振り方をしてしまうから、 ゆとりはゆとりのままなんだよ。 聞くは一時の恥、聞かぬは一生の恥、だよ。 こんな匿名のところですら面子を重視しているうちは一生ゆとりだよ。
- 750 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 20:09:36.55 ID:XWnO8Cg2.net]
- めっちゃ早口で言ってそう
- 751 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 20:52:30.96 ID:iTS+fWTZ.net]
- なぜかバカって無駄な長文書くんだよな
こういう奴が書くコードも推して知るべしなんだろうな w
- 752 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 21:11:54.02 ID:DeCVSWGu.net]
- そういうのも馬鹿っぽいよ。中学生か。
問題なのは言ってることが正しいかどうか、それだけ。 長文かどうかなんてそれとまったく関係がない。 彼はトンチンカンな勘違いをしてるから馬鹿にされてるだけ。
|

|