暇つぶし2chat TECH
- 暇つぶし2ch7:デフォルトの名無しさん (ワッチョイ 7b87-8bDS)
16/12/28 17:46:48.75 4cVGFWSK0.net
>>5
レスありがとうございます。
バインドしなかったのは置いておきまして・・・
元データというのは、古いrowのことでしょうか。
それともrow.Createcellsに渡したDateGridViewのことでしょうか。
古いrowは、dispose、nullの代入は行っています。
DataGridViewは、行のクリアは行っています。
(DataGridView自体のdisposeは行わず、使い回しです)
試しに、プログラム実行直後のDataGridviewに何も入ってない状態で、
DataGridViewRow row = new DataGridViewRow()
row.CreateCells(this.dataGridView1);
を繰り返すだけでガンガンメモリ量が上がっていきます。
(rowの配列をDatagridviewにはセットしなくても)

8:デフォルトの名無しさん (ワッチョイ 7f94-4hBO)
16/12/28 17:57:11.86 YF6A9Wev0.net
「元データ」といったのはDataGridViewRowの各セルに入れるデータのこと
自分が試してみたら、Rows.Clearして追加を繰り返していくだけで適切にGCが働いてくれてるんだけど…
(別にDataGridViewRowをDisposeしなくても大丈夫だった)

9:デフォルトの名無しさん (ワッチョイ 7b87-8bDS)
16/12/28 18:01:48.60 4cVGFWSK0.net
>>7
実験までやっていただいてありがとうございます。
Rows.Clearというのはどう行うのでしょうか?
DataGridViewRowのメソッドにclearが見つからないのですが・・・

10:デフォルトの名無しさん (ワッチョイ 7b87-8bDS)
16/12/28 18:17:55.89 4cVGFWSK0.net
自己レスです。
rowの配列のRowsですね。
Rows(rowの配列)を作らなくても、メモリが増えていっていたので、
頭から抜けていました。
元プログラムの方はそこはクリアしていなかったので試してみます。

11:デフォルトの名無しさん (ワッチョイ 7f94-4hBO)
16/12/28 18:55:56.99 YF6A9Wev0.net
Rows.Clear って省略しちゃったけどそれはDataGridView.Rows.Clearのことだったんで
>DataGridViewは、行のクリアは行っています。
なら、そこは変わらないかも
自分が気にしてるのは、DataGridViewに入れるデータを取得・更新したときに
(DataGridView関係なく)入れるデータの方のDispose漏れはないですか?ということ…
>試しに、プログラム実行直後のDataGridviewに何も入ってない状態で、
>DataGridViewRow row = new DataGridViewRow()
>row.CreateCells(this.dataGridView1);
>を繰り返すだけでガンガンメモリ量が上がっていきます
インスタンスを繰り返し作れば使用メモリがガンガン増えるのは当たり前なので、何か気にするところを間違えてる気がするんだけど…

12:デフォルトの名無しさん (ワッチョイ 7b87-8bDS)
16/12/28 19:03:09.17 4cVGFWSK0.net
>>10
何度もお手間おかけしてしまいすみません。
>インスタンスを繰り返し作れば使用メモリがガンガン増えるのは当たり前なので、
>何か気にするところを間違えてる気がするんだけど…
とどのつまりはそこでして、
>DataGridViewRow row = new DataGridViewRow()
>row.CreateCells(this.dataGridView1);
を実行した後の、rowのDisposeの仕方がわからないのです。
row.Dispose()をやっても、row.Cells.Clear()をやっても、row = nullとやっても、
ガベージコレクションで解放されないので、困っております。

13:デフォルトの名無しさん (ワッチョイ 7f94-4hBO)
16/12/28 19:42:50.61 YF6A9Wev0.net
自分が試したのは URLリンク(ideone.com) で、
これだとbutton1を押すたびにメモリ使用量が増えていき、
一定消費量でGC発動→その後もGCが適宜発動
になるんだけど、どこで違いがでるんだろう…

14:デフォルトの名無しさん (ワッチョイ b749-AD9A)
16/12/28 22:19:37.96 Bwga9xUV0.net
this.dataGridView1.Rows.Clear();
やってない予感。

15:デフォルトの名無しさん (ワッチョイ 0f7b-SerI)
16/12/28 23:25:39.98 Eve+QkKl0.net
GCが発動しないのは、リソースを参照しているとか、PCのメモリ量が大きいとか

16:デフォルトの名無しさん (ワッチョイ f3bd-evmS)
16/12/29 01:46:34.77 mvPliBkI0.net
今回ので解決するかは知らんが
メモリリーク(GC対象外)の原因をつきとめたいなら
メモリリーク windbg sos.dll
でやり方を検索。
暗中模索でいろいろやるのは非効率だと思う。

17:デフォルトの名無しさん (ワッチョイ af87-Eko0)
16/12/29 08:46:21.64 WI/qqjBQ0.net
ID:4cVGFWSK0ですが、みなさまご意見ありがとうございます。
>>12
教えていただいたサンプルでもやってみます。
また経過を書かせてもらいますね。
>>13
dataGridView1.Rows.Clear();はやっています。(thisは付けていないですが)
そのあと、関数をコールして、その関数内で、DataGridViewRowのくだりをやっています。
>>14
PCのメモリ量は大きいですね(8G)。
でも、32bitアプリにしてるので、2Gで落ちるのです。
>>15
情報ありがとうございます。
早速検索してみます!

18:デフォルトの名無しさん (ワッチョイ 07dc-Ft01)
16/12/29 09:34:31.13 ICm4kcbN0.net
CLRプロファイラを使えばどいつが参照を握ってるのか簡単にトレースできる

19:デフォルトの名無しさん (ワッチョイ 0a11-psYp)
16/12/29 10:18:27.52 SpO/gD9k0.net
Process.Start(

20:デフォルトの名無しさん (ワッチョイ 0a11-psYp)
16/12/29 10:20:27.32 SpO/gD9k0.net
失敗しました。
Process.Start(”EXPLORER.EXE”, ”search-ms:query=*.pdf* &crumb=location:C:\\”);
を実行して、C直下にあるpdfファイルを検索した状態で表示したいのですが、うまくできません。
エクスプローラーにPDFファイルのみ表示するにはどうしたらいいのですか?

21:デフォルトの名無しさん (ワッチョイ af87-Eko0)
16/12/29 10:28:13.15 WI/qqjBQ0.net
>>17
情報ありがとうございます。簡単そうだったので、早速使ってみました。
途中から枝分かれが多くなってきたのですが、枝の元はここのようです。
206 MB(83.62%) from System.EventHandler System.Object []->System.EventHandler->(System.Windows.Forms.DataGridViewComboBoxCell)
147 MB(59.76%) to System.Windows.Forms.PropertyStore(1) System.Windows.Forms.DataGridViewComboBoxCell->System.Windows.Forms.PropertyStore->(System.Windows.Forms.PropertyStore.IntegerEntry [])
DataGridViewの列にはComboBoxにしている列が多数ありまして、
そのComboBoxをクリックしたときに発生するイベントを幾つか利用してるのですが、
そのイベント周りで、クリア→再表示させたときに何か悪さしている感じでしょうか。

22:デフォルトの名無しさん (ワッチョイ af87-Eko0)
16/12/29 10:48:11.82 WI/qqjBQ0.net
20です。ComboBoxでピンと来て、検索してみたのですが、おそらくここで質問されている現象と同じようなことかと思います。
URLリンク(translate.google.co.jp)
DataGridViewのComboBoxに表示させる要素をDataTableとバインドさせているのですが、それが影響しているようです。
上記の質問ページの回答で解決しているのか不明ですが。。。

23:デフォルトの名無しさん (ワッチョイ af87-Eko0)
16/12/29 13:24:27.74 WI/qqjBQ0.net
20ですが解決しました。
原因は、DataGridViewのComboBoxの要素用にDatatableをバインドしていたのですが、
それだとDataGridView.Rows.Clear()しただけでは、ガベージコレクションされていませんでした。
DataGridView.Rows.Clear()したあとに、
各バインドをすべて解除する(Datasourceにnullを代入)と、
ガベージコレクションで、メモリが解放されました。
(その後、次のデータを表示するために再バインドを行います)
どうも懇切丁寧に教えてくださり、ありがとうございました。

24:デフォルトの名無しさん (ワッチョイ 9ff1-6Sai)
16/12/29 14:00:44.91 AE32Webi0.net
このスレには、.netの話はしててもc#の話してる人いないな。
c#て変な言語だな。c++の派生言語だろうと思って、似たようなもんだと勘違いさせて、
試しに簡単なプログラム書いてみると、実際にはcのコードやc++のコードが通用しない。
互換性がないのに、この言語名はおこがましいもんだ。
この板にvb.netのスレは1つしかないのに対して、c#はいくつもある。どうせvb.netと同じ
バイナリファイルになるから、vb.netで良くないのかいな。

25:デフォルトの名無しさん (スップ Sd4a-XCM5)
16/12/29 14:12:40.37 R/A6dVhUd.net
初心者用ってスレで言語仕様の話題がもちきりだったら気持ち悪いわw

26:デフォルトの名無しさん (スッップ Sdaa-weIz)
16/12/29 17:34:05.31 RSbrHHU5d.net
>>23
まあCよっかDelphiよりだかんね

27:デフォルトの名無しさん (ワッチョイ d33c-CHTc)
16/12/29 18:31:53.38 hT8/gKS00.net
Delphiの言語設計者が作った言語だからな

28:デフォルトの名無しさん (ワッチョイ 0f5b-TDvV)
16/12/30 00:27:35.46 i85SXOa50.net
C++のコードなんか通用したらその時点でクソ言語なのでは

29:デフォルトの名無しさん (ワッチョイ 3f91-WE5O)
16/12/30 09:58:53.13 tjoNJpVm0.net
D言語の方がCに近いし、DelphiっぽいC#と名前を入れ替えるべきだな

30:デフォルトの名無しさん (ワッチョイ 07dc-CBwx)
16/12/30 10:14:40.11 hgBVSCl80.net
RAD環境としての全体的なネーミングやライブラリ設計のセンスがDelphiっぽかっただけで
言語自体はそうでもないだろ
最近のVSはDelphiやVB系列の昔ながらのRAD思想を捨ててWeb系に向かいつつあるし
言語の方は独自路線を突っ走って今やニュースタンダードの一つ

31:デフォルトの名無しさん (ワッチョイ 3f91-oeOq)
16/12/30 11:04:36.50 tjoNJpVm0.net
えっ?じょ…
そうですよね…

32:デフォルトの名無しさん (ワッチョイ 9f23-4Ie9)
16/12/30 14:56:29.05 uiIF/Ctr0.net
C#の前身は、DelphじゃなくてJ++

33:デフォルトの名無しさん (ワッチョイ de33-4Doi)
16/12/30 15:41:21.27 KB0M7zpX0.net
まあ、でもdelphiとC#の言語設計したの同じ人だしね

34:デフォルトの名無しさん (ワッチョイ 8a17-YvgG)
16/12/30 18:30:44.06 3Ls/pupf0.net
だからなんだって話だな

35:デフォルトの名無しさん (オッペケ Sra3-pmO9)
16/12/30 22:59:36.70 roV26jkcr.net
C#2.0くらいで頭止まってる人多そうだね。

36:デフォルトの名無しさん (ワッチョイ 4613-4A4P)
16/12/30 23:24:44.37 Vl/trvQD0.net
少ないと思うよ

37:デフォルトの名無しさん (ワッチョイ d33c-CHTc)
16/12/30 23:30:39.52 ZpaOuXX30.net
2.0で止まってると言われたら、「ねーよwww」って笑い飛ばせるが
4.0で止まってると言われたら、ちょっと否定出来る自信が無い

38:デフォルトの名無しさん (ワッチョイ 07dc-CBwx)
16/12/31 00:10:52.34 u4bGwJtr0.net
C#5.0は非同期使う気ないなら無視しても特に差し支えなかったけど
6.0の内容はそういうのとはだいぶ性質が違っててスルーしづらいものになってるよ
C#6.0以降では、イベントの呼び出しは var handler = Click; if (… のパターンは忘れて
Click?(this, e) と書くのが正しい
他にも string interpolation とか expression bodied method/property とか
地味だけど基本的な手癖の部分がかなり変わる

39:デフォルトの名無しさん (ワッチョイ 8a94-+QcV)
16/12/31 00:28:10.96 cfD0mqeo0.net
Click?.Invoke(this, e) じゃない?
これと文字列の $"" 、それに Task.CompletedTask はほんとよく使う。ちょーべんり

40:デフォルトの名無しさん (ワッチョイ 4613-4A4P)
16/12/31 01:32:02.81 7MUUz5p00.net
$””使うとリファクタリングで困らない?

41:デフォルトの名無しさん (ワッチョイ 239d-3vJe)
16/12/31 01:44:04.47 s0njGzj00.net
どんなリファクタリングで困ってるの?

42:デフォルトの名無しさん (ワッチョイ f317-4Ie9)
16/12/31 09:09:11.03 sDFeF81C0.net
リファクタリングだよ

43:デフォルトの名無しさん (ワッチョイ 9f23-4Ie9)
16/12/31 10:01:53.51 6EKD+AK20.net
移植性の問題ならともかく、それをリファクタリングで弄る理由がまるでない

44:デフォルトの名無しさん (ワッチョイ 8b3c-4Ie9)
16/12/31 14:43:52.07 P87k9vua0.net
C#の典型入門書って何がありますか?
スッキリわかる~とか明解~
みたいに入門編と応用編に分冊シリーズ化してるものってある?

45:デフォルトの名無しさん (ワッチョイ 07dc-CBwx)
16/12/31 14:46:50.24 u4bGwJtr0.net
>>39
試したけどリネームにはちゃんと追従するぞ

46:デフォルトの名無しさん (ワッチョイ 4a79-eOuq)
16/12/31 23:59:20.53 shQSIkq00.net
今年こそC#にnull安全が搭載される!

47:デフォルトの名無しさん (ワッチョイ a317-weIz)
17/01/01 00:02:32.19 rBmi6OCp0.net
>>45
ねーよ

48:デフォルトの名無しさん (ブーイモ MMaa-eQyU)
17/01/01 00:04:14.81 JRYadV1DM.net
すいませんC#の質問かどうかははっきりしませんが
URLリンク(dobon.net)
ここのソースのままヤフーのフリーメールを全部受信して文字列型配列に格納するコード作ってたんですが
大量のスパムメールに含まれていたのかものすごい勢いでESETがトロイやらウイルス発見の警告を連続でだしたんですが
これってPCはもう危険なのでクリーンインストールしたほうがいいですか?

49:デフォルトの名無しさん (ワッチョイ 4a79-eOuq)
17/01/01 00:06:06.47 pAjpyWNe0.net
.NETの根本から見直さなきゃいけなくなるから
null安全は困難すぎるって話だっけ
でも欲しいよう

50:デフォルトの名無しさん (ワッチョイ 3ad4-4Doi)
17/01/01 00:23:44.22 swtihv5O0.net
>>47
はい

51:デフォルトの名無しさん (ワッチョイ ea90-4Ie9)
17/01/01 02:35:00.22 m0DuYp+I0.net
ずっとVS2010で開発してるけど古い?
特に日常の開発には不自由はしてないんだがなー

52:デフォルトの名無しさん (ワッチョイ d33c-CHTc)
17/01/01 02:39:09.10 epcIVmQh0.net
趣味グラマなら十分だと思う
仕事でやってるなら最新環境に慣れといた方がいいけど

53:デフォルトの名無しさん (アウアウオー Sac2-FZ8F)
17/01/01 02:50:32.77 BJy+zHBJa.net
逆だと思うよw
職場にもよるが仕事であればこそいやでもエンドユーザーの都合に縛られる。
まだあと2,3年はXPで動くことを前提にしなきゃならん案件が残るだろう。
そうすると必然出来にVSのバージョンはともかく、.NET4.0をターゲットにしなきゃならん

54:デフォルトの名無しさん
17/01/01 05:44:11.89 V3p5vYeD5
>>49
変数に格納するだけで感染するんですか?
実行されたものとみなされてるなら遠隔発信みたいな実効するのあったらもしかしてやばいですか?

55:デフォルトの名無しさん (ブーイモ MMaa-llBT)
17/01/01 05:48:08.29 wDaZYdaJM.net
>>49
変数に格納しただけで感染するんですか?
もしかして遠隔発信を実効みたいな添付ファイルのがあったらヤバイですか?

56:デフォルトの名無しさん (ワッチョイ a317-weIz)
17/01/01 08:02:51.25 rBmi6OCp0.net
>>52
2015だと4.0使えないとでも思ってる?

57:デフォルトの名無しさん (ワッチョイ 4fd6-Sa8B)
17/01/01 09:25:48.11 rzfsLfEB0.net
>>55
最終行読めないの?

58:デフォルトの名無しさん (ワッチョイ 4613-4A4P)
17/01/01 09:59:02.41 k/7gtQH+0.net
>>55

59:デフォルトの名無しさん (ワッチョイ 3ad4-4Doi)
17/01/01 10:18:38.48 swtihv5O0.net
>>54
そのタイプあるね

60:デフォルトの名無しさん (ワッチョイ 9f23-4Ie9)
17/01/01 10:24:35.02 oYN2j5aa0.net
>>50
2010からなら、NuGetとGitだけでも2015に乗り換える価値がありますね

61:デフォルトの名無しさん (ワッチョイ 07dc-CBwx)
17/01/01 11:26:11.41 ls6vqNpI0.net
趣味なら2015にしない理由がないだろ
CommunityでPro相当の機能がタダで使えるし、
特に重くなるわけでもない、むしろ軽くなる

62:デフォルトの名無しさん (ワッチョイ 06af-mbxx)
17/01/01 11:45:57.00 F1zcn46Y0.net
最近2015に乗り換えたけどデバッグ時にアプリが使ってるCPUやらメモリやら出してくれるのが面白いからそれだけで乗り換えた甲斐があった

63:デフォルトの名無しさん (ワッチョイ d33c-4Ie9)
17/01/01 11:46:49.53 PhxE8icv0.net
2017ってどうなの?2015なら大丈夫なのに2017でdynamicjsonがなんかエラー吐く(初心者なので意味わからん)

64:デフォルトの名無しさん (ワッチョイ 4fd6-Sa8B)
17/01/01 11:51:21.41 rzfsLfEB0.net
初心者がRC使うの最高にCOOL

65:デフォルトの名無しさん (ワッチョイ d33c-4Ie9)
17/01/01 11:56:26.30 PhxE8icv0.net
初心者が使ってはダメなやつやったんか…知らんかった

66:デフォルトの名無しさん (ワッチョイ f3bd-evmS)
17/01/01 13:13:05.67 Ce68Anjj0.net
>>50
2013から定義に移動じゃなくて定義をその場で見れるのが追加されて便利

67:デフォルトの名無しさん (ワッチョイ 23c0-4Ie9)
17/01/01 13:18:24.37 y0Ukbj+b0.net
>>60
2012か13辺りから全体的に軽くなったよな

68:デフォルトの名無しさん (ワッチョイ d33c-CHTc)
17/01/01 13:42:02.49 epcIVmQh0.net
>>60
>趣味なら2015にしない理由がないだろ
強いて理由を探すなら、Vista使いの場合とか
まあそろそろサポート切れるから、どの道移行せにゃならん時期だが

69:デフォルトの名無しさん (ワッチョイ ea90-4Ie9)
17/01/01 22:59:51.99 m0DuYp+I0.net
VS2010に慣れてもうた。

70:デフォルトの名無しさん (ワッチョイ 07dc-CBwx)
17/01/01 23:59:56.56 ls6vqNpI0.net
新しいものを受け入れる気がないなら管理や上流にシフトしていくかコボラー目指した方がいいよマジで
.NETなんかすぐに陳腐化する一時的な道具に過ぎないんだから

71:デフォルトの名無しさん (アウアウカー Sa6b-2y/h)
17/01/02 00:20:01.62 JJeYWN7Sa.net
でも.NETって今一番勢いよくない?

72:デフォルトの名無しさん (ワッチョイ 4613-4A4P)
17/01/02 05:55:51.37 5PZq4XXX0.net
>>68
2010も2015も共存できるから併用すればいいんだよ
自分のPCには2005から全バージョン入ってる

73:デフォルトの名無しさん (ワッチョイ ffc9-Fh/7)
17/01/02 07:18:08.38 Izn6zzv10.net
俺も6.0から全部入れてる
古い環境もメンテしないといけないからな

74:デフォルトの名無しさん (ワッチョイ 23c0-4Ie9)
17/01/02 10:42:19.74 xTh8FYt20.net
VSの併用とか2015からFrameworkのバージョンに合わせてターゲット変えるだけでよくね?
ソリューションファイルも最新版に合わせて変換出来るし

75:デフォルトの名無しさん (ワッチョイ 07dc-CBwx)
17/01/02 11:09:59.92 CPceoiNS0.net
現実にはそれで問題ないだろうけど、
URLリンク(msdn.microsoft.com)
>フレームワークの対象機能は、開発中のアプリケーションが正しく実行されることを保証するわけではありません。
> 対象のバージョンで実行できるかどうかを確認するために、アプリケーションをテストする必要があります。
というわけで、「もし何かあったら誰が責任取るのか」というジャップらしい停滞思考が問題になってくる
MSは責任取ってくれないので責任取るのはシステム会社か客のどちらか
そういう場合、システム会社は基本的に責任取りたくないので「お客様の責任でVSをアップグレードしますがいいですか?」となる
そして客はもちろん「じゃあやんなくていいよ、うちにメリット無いんでしょ?」となる
その結果、塩漬けの開発環境が増殖する

76:デフォルトの名無しさん (ワントンキン MMfa-BD8y)
17/01/02 11:10:17.58 GHxiRgy/M.net
まあアマチュアならそれでいいと思う

77:デフォルトの名無しさん (ワッチョイ 23c0-4Ie9)
17/01/02 11:24:24.86 xTh8FYt20.net
>>74
保証出来ないと明記してあるならそりゃ誰も責任取らないわな・・・

78:デフォルトの名無しさん (ワッチョイ 83a1-rkCf)
17/01/02 11:28:49.04 MrPj4nrh0.net
お客様がUWPでとお願いすれば喜んでアプグレしてくれる訳ですね

79:デフォルトの名無しさん (ワッチョイ d33c-4Ie9)
17/01/02 15:35:05.25 Bg6UcTuL0.net
すいません。
あるAPIでjsonを取得してdynamicjsonを使いました。
{"asks":[[123643,25.0175],[123628,7.645],[123613,0.5675],[123609…
でasksの一つ目とかはasks[0]で値を取れるんですがasksの最後の値を取得したい時はどうしたら良いのでしょう?
asksの中身の数は変動します。
よろしくお願いします。

80:デフォルトの名無しさん (ワッチョイ 07dc-CBwx)
17/01/02 15:52:55.16 CPceoiNS0.net
asksをdouble[][]とかにキャストできないか?
でも素直にデファクトスタンダードであるJSON.NETを使うのが正解

81:デフォルトの名無しさん (ワッチョイ d33c-4Ie9)
17/01/02 16:27:54.26 Bg6UcTuL0.net
>>79
ありがとうございました!
キャストの意味すらググった初心者ですがLengthで簡単にできました!

82:デフォルトの名無しさん (ワッチョイ 8a3c-vnn7)
17/01/02 17:14:58.41 jbaRYfeA0.net
>>78
object[] にキャストして要素数を取得すればいいだけかと

83:デフォルトの名無しさん (ワッチョイ d33c-4Ie9)
17/01/02 17:20:41.89 Bg6UcTuL0.net
はい。キャストしてできました。ありがとうございます。

84:デフォルトの名無しさん (ワッチョイ ea90-4Ie9)
17/01/02 19:04:14.09 UIwqzKQn0.net
>>72
VB6.0懐かしいな。
ネイティブアプリで早かったから何気に一番開発効率が良かったと思うのは私だけ?

85:デフォルトの名無しさん (ワッチョイ 0742-XCM5)
17/01/02 20:20:20.97 Z8V39eee0.net
6.0って聞いたらVCかなって思うけど
MFCとか大分長期間使われてたイメージ

86:デフォルトの名無しさん (スフッ Sdaa-weIz)
17/01/02 23:27:18.71 +s3lguXJd.net
>>74
テストしろって当たり前のこと言ってるだけじゃね?

87:デフォルトの名無しさん (ブーイモ MMaa-Ft01)
17/01/02 23:38:14.71 mABnUerHM.net
>>85
その金は誰が出す?
お前が客のシステム担当だとして、VSのバージョン上げるからテストする金出してくれと言われたら社内の偉い人説得して予算取れる?

88:デフォルトの名無しさん (ワッチョイ 83a1-rkCf)
17/01/02 23:42:56.76 MrPj4nrh0.net
バージョン上げなかったらテストしなくても良いってコト?

89:デフォルトの名無しさん (ブーイモ MMaa-Ft01)
17/01/02 23:45:41.89 mABnUerHM.net
>>87
そりゃ現に運用してるシステムならそうだろ

90:デフォルトの名無しさん (ワッチョイ a317-weIz)
17/01/03 00:05:29.12 KitL9RZ20.net
>>86
お前理解してないだろ

91:デフォルトの名無しさん (スフッ Sdaa-weIz)
17/01/03 00:14:34.44 imuDuf+Kd.net
>>86
お前開発PCのVisual Studioでビルドしたバイナリをそのまま本番環境に置いてんの?

92:デフォルトの名無しさん (ワッチョイ a317-weIz)
17/01/03 00:19:29.79 KitL9RZ20.net
>>56
ターゲットにしなきゃならん

93:デフォルトの名無しさん (ワッチョイ 07dc-CBwx)
17/01/03 00:27:06.56 VxAvtnd00.net
>>90
いや、運用開始後の話をしてるんだが
開発途中ならそりゃVSのバージョンなんか勝手に上げたらいいだろ

94:デフォルトの名無しさん (スフッ Sdaa-weIz)
17/01/03 00:31:17.00 fs192aUgd.net
>>92
運用開始後も一緒だろ?MSBuildToolVersion指定してMSBuild.exe叩くか、Cakeでも使えば?

95:デフォルトの名無しさん (ワッチョイ 07dc-Ft01)
17/01/03 00:41:40.92 VxAvtnd00.net
>>93
知らんがな
俺はテストが必要であるという>>85の前提の下で話をしてる
MSBuild使うことでバイナリ一致が保証できてテストは不要だというんならはっきりそう主張してくれ

96:デフォルトの名無しさん (ワッチョイ ea90-4Ie9)
17/01/03 00:48:48.55 Q90ptGUV0.net
まぁ、ぶっちゃけ安定しているシステムがある以上
リスクを冒してまで、VSのバージョンあげてくれ
とはオファーしないだろ。

97:デフォルトの名無しさん (アウアウカー Sa6b-2y/h)
17/01/03 00:50:09.34 ckbzi1t0a.net
ん?業務系であれば運用状のverupが必要となればそれなりのメンテナンス費用が発生すんのが普通にじゃないの?
そういうのがビジネスモデルになるんじゃないんだ

98:デフォルトの名無しさん (ワッチョイ 83a1-HB/E)
17/01/03 01:56:40.80 K9PZ4HA50.net
新規の案件でバージョン上げない理由は無かったって事で良いんでね

99:デフォルトの名無しさん (スフッ Sdaa-weIz)
17/01/03 04:24:12.26 ojbYqeVPd.net
>>94
Cakeはともかく、MSBuild知らないの?IDEは最新に変えても、ビルドの仕組み変えなきゃバイナリ変わらんだろ

100:デフォルトの名無しさん (ワッチョイ 07dc-Ft01)
17/01/03 08:22:24.41 VxAvtnd00.net
>>98
だから俺はそんな話はしていないと言っている
Q. テストが必要なら、その金は誰が出すのか?
A. MSBuild使えば?
俺が好意的に意図を汲んでやらなかったらただの頭おかしい子だろこれ
それまで誰一人として、テストの必要性や責任問題が生じる可能性についてそもそもの前提に異を唱えた奴はいない
俺も君の考えは正しいと思うが、だったら噛み付く対象は俺ではないし「テストも責任問題も不要だ」とはっきり書け

101:デフォルトの名無しさん (ワッチョイ 8a3c-vnn7)
17/01/03 09:52:38.00 hCjfXn+00.net
>>98
> IDEは最新に変えても、ビルドの仕組み変えなきゃバイナリ変わらんだろ
マイクロソフトが保証してると言うソースよろしく

102:デフォルトの名無しさん (ワッチョイ 83a1-HB/E)
17/01/03 10:27:22.08 K9PZ4HA50.net
なんか表現に誤解がある気がする
テストの対象はあくまでもバージョン同士の互換性にあって
本番環境での正常動作なんてそれこそ誰にも保証しようが無いと思うが

103:デフォルトの名無しさん (スプッッ Sdaa-weIz)
17/01/03 11:04:05.16 o5OZTy9Pd.net
>>99
テストも責任問題も不要だ

104:デフォルトの名無しさん (スプッッ Sdaa-weIz)
17/01/03 11:06:05.35 o5OZTy9Pd.net
>>100
ビルドの仕組みを変えなくてもIDEやエディタによってビルド結果に差が出るソースよろ

105:デフォルトの名無しさん (ワッチョイ 23c0-4Ie9)
17/01/03 11:08:57.06 UmM78+JY0.net
VS更新でテストコストが増すとか、そりゃ某プロジェクトが未だにVS2005強制なのも納得ですわ

106:デフォルトの名無しさん (ワッチョイ 8a17-YvgG)
17/01/03 11:29:00.67 ui2n6vqh0.net
>IDEは最新に変えても、ビルドの仕組み変えなきゃバイナリ変わらんだろ
こう言ってる相手にソース開示求めて、その返しが変わることのソース提示要求っておかしいだろ。
ただ感情的な押収したいだけなら他にいけ。

107:デフォルトの名無しさん (ドコグロ MMc6-vnn7)
17/01/03 11:38:39.54 HznlyBynM.net
>>103
コンパイラを変えずにIDEのバージョンアップする方法よろしく

108:デフォルトの名無しさん (ワッチョイ ea90-4Ie9)
17/01/03 11:45:00.38 Q90ptGUV0.net
もうVS2010でええやないか。

109:デフォルトの名無しさん (スプッッ Sd4a-weIz)
17/01/03 11:45:54.05 K7Dmta0Wd.net
>>106
>>93

110:デフォルトの名無しさん (ワッチョイ 8a3c-vnn7)
17/01/03 12:10:16.51 hCjfXn+00.net
>>108
マジで言ってるならかなりヤバイぞ
サービスパック当てるだけでも生成されるバイナリ変わったりするのに...

111:デフォルトの名無しさん (ワッチョイ 0a7b-vAWO)
17/01/03 13:00:40.60 9MECLtGX0.net
コンパイラのバージョンアップに伴う破壊的変更って、そんなに多いの?
サービスパックでバイナリ変わって何の問題があるの?

112:デフォルトの名無しさん (ワッチョイ d33c-weIz)
17/01/03 13:11:51.57 xooqIixo0.net
>>109
Window Updateするたびにテストし直してるの?

113:デフォルトの名無しさん (スプッッ Sd4a-weIz)
17/01/03 13:14:49.12 zguhP+0Gd.net
>>109
たとえばどのサービスパック?

114:デフォルトの名無しさん (スフッ Sdaa-smXe)
17/01/03 17:50:15.96 ID


115::neLiV4/Td.net



116:デフォルトの名無しさん (ワッチョイ 0ece-N5TX)
17/01/03 17:59:18.98 NG8bRimt0.net
別環境でリビルドするってことは全テストやり直しだと思うけどな
exeのCRCが違うだけで大騒ぎだよ

117:デフォルトの名無しさん (ワッチョイ d33c-weIz)
17/01/03 19:22:46.72 xooqIixo0.net
>>114
別環境って具体的に言うと何が違う環境のこと?

118:デフォルトの名無しさん (ワントンキン MMfa-BD8y)
17/01/03 19:24:17.81 z13mJHntM.net
自動テスト走らせて終わり

119:デフォルトの名無しさん (スプッッ Sd4a-weIz)
17/01/03 19:24:37.24 WXd1abP3d.net
>>113
開発環境じゃなくてビルド方式の話だろ

120:デフォルトの名無しさん (ワッチョイ 3b3c-vAWO)
17/01/03 19:58:20.04 KCsiqS050.net
サービスパックでバイナリ変わってどんな問題が出るのか早く答えてくれよ

121:デフォルトの名無しさん (ワッチョイ ffbb-Sa8B)
17/01/03 20:35:18.51 f2h7dQbm0.net
まずOSのSPかVSのSPか。

122:デフォルトの名無しさん (アウアウイー Sae3-smXe)
17/01/03 20:55:23.92 kvTQlyIsa.net
>>118
IL的に、スレッド絡みのコードの実行順序が変わるのがあった。
ヤバかった。
あとUIスレッドをinvokeしてるのに一向に上がってこないのでMSに電話して教えてもらった回避コードが、KB当てると仇になってすごく大変な思いをした。
具体的にどのKBかはさすがにもう十年近く前の話だから出てこないけど。

123:デフォルトの名無しさん (ワッチョイ ffbb-Sa8B)
17/01/03 21:00:43.94 f2h7dQbm0.net
Vista以降はバージョン管理方法変わったから
古いのでビルドしたらUpdateしてもちゃんと古いライブラリが呼ばれるだろう。

124:デフォルトの名無しさん (ワッチョイ d33c-weIz)
17/01/03 21:04:39.45 xooqIixo0.net
>>120
>>119

125:デフォルトの名無しさん (オッペケ Sra3-VMLW)
17/01/03 21:09:05.75 jisG0r0rr.net
>>120
>ヤバかった
環境に依存して挙動が変わる糞コード書いてるお前がな

126:デフォルトの名無しさん (ワッチョイ ffbb-Sa8B)
17/01/03 21:22:49.13 f2h7dQbm0.net
それは無理。Javaで証明されたろ。

127:デフォルトの名無しさん (アウアウイー Sae3-smXe)
17/01/03 22:14:44.80 kvTQlyIsa.net
>>123
環境に依存して挙動が変わると言ってもなぁ。
ILでまず結構違うコードになってたから。
そうじゃないとMS呼ばないし…。
うちが発端で出たKBも結構あるよ。
歴史を知らん奴なら仕方ない話だけど。

128:デフォルトの名無しさん (オッペケ Sra3-VMLW)
17/01/03 22:29:02.82 UBgfjyMnr.net
>>125
ILが違うとかどうでもよくて、そのILは言語仕様に違反してなかったんだろ?
自分のアホさがKBになったのを自慢されても

129:デフォルトの名無しさん (アウアウオー Sac2-FZ8F)
17/01/03 22:29:56.08 HUUvcaepa.net
>>125
トンチキなこと言ってる奴相手にしなくていいのに

130:デフォルトの名無しさん (アウアウイー Sae3-smXe)
17/01/03 22:40:51.48 kvTQlyIsa.net
>>126
言語仕様と言うか、まぁ違反はしてないよ。
違反はしてないけど間違ってたよ。
交通違反はしてないけどそもそも道間違って袋小路をぐるぐる回る田舎者みたいになってた。
ILがどうでも良いわけ無いじゃん…。

131:デフォルトの名無しさん (アウアウイー Sae3-smXe)
17/01/03 22:41:32.14 kvTQlyIsa.net
>>122
あ、見逃してた。.net FWのKB。

132:デフォルトの名無しさん (スプッッ Sdaa-weIz)
17/01/03 22:48:21.94 iTpzNjFbd.net
>>129
つまりVisual Studioはアップグレードしても問題ないと

133:デフォルトの名無しさん (ワッチョイ d33c-weIz)
17/01/03 22:50:46.15 xooqIixo0.net
>>129
スレッドいじろうとして失敗する典型的な糞コードかよ

134:デフォルトの名無しさん (アウアウイー Sae3-smXe)
17/01/03 23:09:45.58 kvTQlyIsa.net
>>130
確実とは言えんけど、コンパイラのバージョンが上がらないなら大丈夫な気はするな。
あと、環境変数周り。
>>131
お前はもうすこし考えて喋れ。

135:デフォルトの名無しさん (ワッチョイ 83a1-HB/E)
17/01/03 23:09:56.26 K9PZ4HA50.net
単純に仕様に無い実装上の実行順序に依存してたって話やないんか

136:デフォルトの名無しさん (アウアウイー Sae3-smXe)
17/01/03 23:13:58.63 kvTQlyIsa.net
>>133
せやないで、本来は実行順序的にはコンテキストが切り替わるべきシーンで切り替わらん現象があって、GetMessageしてTranslateMessageしてDispatchMessageしないとデッドロックするとか、
そういう類のやつ。

137:デフォルトの名無しさん (ワッチョイ 83a1-HB/E)
17/01/03 23:14:21.26 K9PZ4HA50.net
GC/DOMが実装されてからが本番なので
しばしお待ちをって感じだね

138:デフォルトの名無しさん (ワッチョイ 83a1-HB/E)
17/01/03 23:14:50.64 K9PZ4HA50.net
>>135
誤爆

139:デフォルトの名無しさん (ワンミングク MMfa-BD8y)
17/01/03 23:18:14.10 7mNkwS/NM.net
バグの詳細を書かないと判断が付かないな
本当にバグだったのか
APIの誤用をバグと言い張っているだけなのか
GUIだと特に仕様の誤認は多いからな

140:デフォルトの名無しさん (アウアウイー Sae3-smXe)
17/01/03 23:21:24.02 kvTQlyIsa.net
>>137
何を疑ってるかわからんが、MSの人来てもらって、回避コードを提供してもらって、結果その後KB出たんだから、少なくとも不具合はあったのかと。
あれほどMSと繋がり強い会社で助かったことは無かったわ。

141:デフォルトの名無しさん (ワッチョイ ffbb-Sa8B)
17/01/03 23:23:57.34 f2h7dQbm0.net
MSのサポートは当たり外れがあるがまとも。最悪なのはオラクル。

142:デフォルトの名無しさん (アウアウイー Sae3-smXe)
17/01/03 23:26:52.81 kvTQlyIsa.net
仕様の誤認とかごちゃごちゃ言ってるやつは、.net FW 2.0から3.5の時のあの歩く場所すべてが地雷原みたいなあの状態を知らんのだろうな。
>>139
当たり引いたら、
「契約上、成果物は作れませんが、凄く良くできたサンプルは提供できます。凄く良く出来たサンプルは


143:サンプルなので修正してくださいね、コピーライトとか」 なんて便利な人来てくれるからな。 高いけど。



144:デフォルトの名無しさん (ワッチョイ 9f23-4Ie9)
17/01/03 23:27:44.88 0AbGJStf0.net
ほぼ内部でしか使われていないCのクロスコンパイラで、do whileの論理が逆という酷いバグが有って
先輩がソレに合わせて逆に書いたんだが、普通にコンパイラ直されてパニクったこと遭ったな

145:デフォルトの名無しさん (オッペケ Sra3-VMLW)
17/01/03 23:31:34.08 yN3oG6Qmr.net
>>138
お前が「どういうのが仕様で」「どういう動作をした」
からバグだと言い張ってんのか具体的説明すればいいだけ
それが出せなきゃ誤用を疑われるのは必然なのに
そんなこともわからんのか?

146:デフォルトの名無しさん (アウアウイー Sae3-smXe)
17/01/03 23:37:21.09 kvTQlyIsa.net
>>142
具体的説明はしたじゃん。
GetMessageしてTranslateMessageしてPostMessageって一言で言えばVB6のDoEventsよ。大体どのシーンかそれだけで理解できると思うけど。
あまりの経験不足やら実力不足でお前がそう思ってんならもうそれでいいよ。
死ぬまで自分の知識や経験より他人の誤用疑っとけ。
前職の10年前のコードなんて俺もあたりはついてても出しようないしな。

147:デフォルトの名無しさん (ワッチョイ ea90-4Ie9)
17/01/03 23:40:44.20 Q90ptGUV0.net
前にNRIのバカが
フロントをWindowsアプリで
ロジックを全てPHPで開発してる糞プロジェクトがあったぞ。
当然破綻したけどな。

148:デフォルトの名無しさん (ワッチョイ d33c-weIz)
17/01/03 23:49:11.58 xooqIixo0.net
>>132
具体的に

149:デフォルトの名無しさん (ワンミングク MMfa-BD8y)
17/01/03 23:49:20.32 7mNkwS/NM.net
根拠となる文書、テスト仕様、テスト結果
少なくともこれぐらいは欲しいよね
GetMessageしてほにゃほにゃ~でこれが詳細ですキリッって一体どういう会社なんだろ
大きい会社みたいだし不安になってくるわ

150:デフォルトの名無しさん (オッペケ Sra3-VMLW)
17/01/03 23:51:04.26 yN3oG6Qmr.net
>>143
ILの実行順序が変わったバグの説明が
>GetMessageしてTranslateMessageしてPostMessage
なのかw
>前職の10年前のコードなんて俺もあたりはついてても出しようないしな
あ…(お察し)

151:デフォルトの名無しさん (ワッチョイ ded4-4Doi)
17/01/04 00:11:21.80 zmi2V8Wc0.net
>>146
えっ
まーその


えっ?

152:デフォルトの名無しさん (ワッチョイ 4613-Sa8B)
17/01/04 01:28:07.64 Cuh89P7C0.net
PostMessageが失敗するかどうかでメモリの余裕具合をみる話ならば,どこぞでずいぶんと賑わったね

153:デフォルトの名無しさん (ワッチョイ 8a7b-HB/E)
17/01/04 01:34:13.72 QkHdvWWM0.net
VSスレでやれ

154:デフォルトの名無しさん (ワッチョイ 8a7b-HB/E)
17/01/04 01:35:06.24 QkHdvWWM0.net
おっと誤爆

155:デフォルトの名無しさん (ドコグロ MM16-vnn7)
17/01/04 07:22:47.02 CCOfH6ODM.net
>>112
C# は知らんけど C++ は結構変えられてるよ
URLリンク(msdn.microsoft.com)(v=vs.140).aspx
まあ規格に違反してるコードに起因するんだけどそれが 0 であることを保証できないしなにが原因だろうと不具合起きたらこっちの責任になるんだから Update 適用したらうちは再確認している

156:デフォルトの名無しさん (ドコグロ MM16-vnn7)
17/01/04 07:28:30.50 CCOfH6ODM.net
>>139
だね、特にAPIとか開発ツールのサポートはあっちも同類の人と思ってくれるのか結構真面目に対応してくれる感じ
Oracle はくそ高いのに対応最悪
でもお客さんの手前サポートは外せない...

157:デフォルトの名無しさん (スプッッ Sdaa-weIz)
17/01/04 07:51:43.73 /ZWNU792d.net
>>152
C#の話なんだが
ランタイムの更新は気にしないの?
ビルド方式を変えないVisual Studioのアップグレード危険派はどこに行ったんだ…

158:デフォルトの名無しさん (ワッチョイ 0ece-N5TX)
17/01/04 08:07:01.31 0ISnzSv/0.net
何も変えなくてもビルドする度にexeのチェックサムって変わるだろ
当然ながらリビジョンも変えるし
そんなもんを運用中に適用するなら本番入れる前にテストやり直して
場合によっては関係部署に再テスト依頼せにゃならんよ
平たく言えば普通のリリース作業と同じ工数、お金が掛かる

159:デフォルトの名無しさん (ドコグロ MM16-vnn7)
17/01/04 08:22:25.36 CCOfH6ODM.net
>>154
> C#の話なんだが
C++ で変わってるのに C# なら大丈夫とかお花畑過ぎるんじゃね?
> ランタイムの更新は気にしないの?
なんで気にしないことになってるんだ?

160:デフォルトの名無しさん (スプッッ Sdaa-weIz)
17/01/04 08:32:41.01 /ZWNU792d.net
>>156
根拠ねーのかよ
じゃ、ランタイムについてはどうしてんの

161:デフォルトの名無しさん (スプッッ Sdaa-weIz)
17/01/04 08:34:32.35 /ZWNU792d.net
>>155
>場合によっては
当たり前だろ
しかしいつからexeの話になったんだ?

162:デフォルトの名無しさん (ワッチョイ 0a7b-vAWO)
17/01/04 08:38:17.44 oDke8IkR0.net
どっかのバカが別環境でビルドしたら
exeのCRCが変わって大騒ぎした、って書いたあたりかな

163:デフォルトの名無しさん (ドコグロ MM16-vnn7)
17/01/04 12:42:50.86 CCOfH6ODM.net
>>157
お気楽な奴はいいなあ w
> 根拠ねーのかよ
「変化しない」と言う根拠がないから確認するんだよ
> じゃ、ランタイムについてはどうしてんの
ちょいと前からランタイムっていってるけどなんの話だ?

164:デフォルトの名無しさん (ワッチョイ 8a17-YvgG)
17/01/04 16:37:16.25 zdqZcue50.net
(これって 97 のバイナリが変わらないって主張から始まってるのに、なんで変わる方にソースを求める展開になってるんだろう?)

165:デフォルトの名無しさん (ワッチョイ 0602-eqBK)
17/01/04 17:05:39.31 JR/sdM0U0.net
バイナリが変わろうが変わるまいが、開発環境変えたらどうせ全部テストやり直しだからどうでもいい話題
ほとんどがVS単体で全てが完結してるわけでもないしな

166:デフォルトの名無しさん (アウアウオー Sac2-FZ8F)
17/01/04 18:12:38.94 Iw3OVxAUa.net
>>162
個人的にはそれも無駄なコストだと思うけどね。
原発やICBMの制御ソフトでも作ってるのなら話は別だけど
.NETなんて所詮JITなんだからネイティブアプリより実行環境の違いに依存する部分が大きいのに
日本人ってバランス感覚が悪いっていうか、トータルの製品のコスパを考えずに
しょうもないところに過剰品質になる傾向があるよな。
家電なんかそれでやられた部分もあるのにさ。

167:デフォルトの名無しさん (スプッッ Sdaa-weIz)
17/01/04 18:18:02.15 /ZWNU792d.net
>>162
ビルド方式は変えない

168:デフォルトの名無しさん (ワンミングク MMfa-BD8y)
17/01/04 18:25:54.34 geMbjMeoM.net
開発環境を変えたら自動テスト走らせて終わり
追加のテストは費用など応相談
稀な事例を持ち出してテスト工数を増やそうとする奴は処分

169:デフォルトの名無しさん (ワッチョイ 8a17-YvgG)
17/01/04 18:54:32.15 zdqZcue50.net
>>163
お客さんにそう言って納得してもらえれば、だな。
医療系のソフトを触ってたときは、ビルド&インストール用のパッケージを作成する専用の端末を用意してた。
もちろんサーバ?はこちらで用意して、各ソフトのバージョン等々を統一してアップデートは禁止。くらいは普通だったような。
そうかと思えば、新しい PC でカタログに書いてあることをやろうとしたら出来なくてサポートに頼ったら
「そんなの知らん」で返されたこともあるから、作るアプリの種類や性質によるんだろ。
それを自分の環境や感覚で一元的に決めつけようとするからおかしくなる。

170:デフォルトの名無しさん (ワッチョイ 8a17-eJTV)
17/01/04 19:02:05.37 MZRDhGwM0.net
お客さんの要望を全面的に受け入れる社長は経営から逃げてる
部下が苦労するだけで自分は楽だから

171:デフォルトの名無しさん (スップ Sd4a-weIz)
17/01/04 19:09:43.62 oq8Msdznd.net
>>166
ビルド方式を教えて!

172:デフォルトの名無しさん (ドコグロ MM16-vnn7)
17/01/04 19:40:51.40 CCOfH6ODM.net
>>167
別に社長のためにやってる訳じゃないよ
(てかお客さんの要望を社長が知ってるとか零細かよ w)
トラブったら自分が苦労するだけだから
なので Update も事前にテストしてから導入するし >>165 も書いてるような自動テストも活用してる
まあ会社や作るものによって色々違うとは思う

173:デフォルトの名無しさん (ワッチョイ ffbb-Sa8B)
17/01/04 20:04:33.02 6hrR76Ry0.net
> お客さんの要望を社長が知ってる
ゲイツのことだな。

174:デフォルトの名無しさん (ワッチョイ 07dc-Ft01)
17/01/04 23:17:39.13 P9CxkEKM0.net
そもそも客側にまともなコスト勘定と経営判断ができるなら、大概の案件は出来合いのパッケージ入れたら終わりだからな
それをわざわざアホみたいにコストかけてオーダーメイドしてるんだから客からすれば柔軟な対応()を期待するのは当然

175:デフォルトの名無しさん (ワッチョイ f394-+QcV)
17/01/04 23:49:33.72 yVktE4ER0.net
プログラムの売り手と買い手のあれこれはム板じゃなくてマ板でやれと誰かが言ってたみたい

176:デフォルトの名無しさん (ワッチョイ eb46-Eko0)
17/01/04 23:50:29.77 sLM1aG3B0.net
すみません、間違えてソフトウェア板のほうに書いてしまったのですが、改めて質問させてください。
みなさんMVCやMVVMといったUIアーキテクチャの知識はどのように勉強しましたか?
ネットの情報をあさっているのですが、いまいちぼんやりとしてどう実装していいのか悩んでいます
なにかよい書籍やサイトがあれば教えていただきたいのですが、よろしくお願いします。
Windows Formで開発しています。

177:デフォルトの名無しさん (アウアウオー Saff-fu3N)
17/01/05 00:32:21.65 e3gR0RPga.net
Windows FormにMVCもMVVMも適用できないのでは?w
Windows Formにそんな大げさな思想はいらないでしょ。
単にモデルに相当する部分のコードをFormに書かなきゃそれで十分だし、
それは余程筋が悪い人じゃなきゃ誰が書いても普通は自然とそうなる

178:デフォルトの名無しさん (ワッチョイ 5b3c-XGsk)
17/01/05 00:48:38.63 heQK3sW60.net
MVCはともかく、MVVMは関係ねーな…w

179:デフォルトの名無しさん (ワッチョイ 0bdc-60SX)
17/01/05 00:53:49.13 xL0iNOQ30.net
本来のMVCは昔のSmalltalkの制約から生まれたもので、そのまま他のプラットフォームに適用できるものではない
WinFormsの場合、VとCを分ける意味はない
Mを分離するだけなら、いわゆる「ビューとロジックの分離」ってやつで特に悩むことはないと思う

180:デフォルトの名無しさん (ワッチョイ 2bbb-HvS5)
17/01/05 01:17:34.27 5IyfMoci0.net
MVCとMVVMを三行で説明してくれ。

181:デフォルトの名無しさん (ワッチョイ 5b3c-XGsk)
17/01/05 01:22:16.28 heQK3sW60.net
M M
V V
C VM

182:デフォルトの名無しさん (アウアウイー Sa3f-WHJN)
17/01/05 01:52:00.35 yCqown6ia.net
>>166
具体的に、とか叩かれてた俺も医療。
若い人は知らんのだろう。

183:デフォルトの名無しさん (ワッチョイ 4fcb-626o)
17/01/05 01:54:24.81 OcKsuL+R0.net
>>173
雑誌やソフトの提灯だからなぁ
そもそも画面と内部なんて切れないのに切っていいことって何かある?
ってところからぶっちゃけ説明できる奴なんかいないから
現場に合わせてテキトーにやっとけばって思う

184:デフォルトの名無しさん (ドコグロ MMff-JQu6)
17/01/05 08:18:11.90 IruuUmglM.net
>>179
若いとかは関係ないでしょ
単にやってる仕事によるってだけのことかと
信頼性よりリリース時期が優先な業種もあるし

185:デフォルトの名無しさん (スプッッ Sdff-bDM2)
17/01/05 08:22:52.46 PsU3CkNVd.net
>>181
そもそもMSBuild叩いてビルドすらできないやつらもいるだろね

186:デフォルトの名無しさん (スププ Sdff-WHJN)
17/01/05 08:33:50.14 BBOrCYHKd.net
>>181
同年代にそこそこの規模のプロジェクトやってたらあのへん一連のトラブルほとんどの人が


187:MSにキレた事件だと思ってたわ。



188:デフォルトの名無しさん (アウアウエー Saff-7WTe)
17/01/05 13:18:03.10 WnmYFKGaa.net
オリジナルのMVCからMVVM(のひとつ手前のPresentation Modelパターン)までの流れを
ざっくりと知りたい人にはこちらのスライド6~23がおすすめ
あの日見たMVCを僕たちはまた知らない for RoR
URLリンク(www.slideshare.net)

189:デフォルトの名無しさん (ワンミングク MMff-+flj)
17/01/05 20:37:30.07 STssXerHM.net
この業界ってめちゃくちゃ幅が広いのになんで自分の携わる領域が絶対の常識みたいな視野の狭い人が多いのか

190:デフォルトの名無しさん (ワッチョイ 2bbb-HvS5)
17/01/05 21:13:27.12 5IyfMoci0.net
大海を知る蛙はいないって諺があってな。

191:デフォルトの名無しさん (スップ Sdff-YkAD)
17/01/05 21:19:56.05 hTR7neYkd.net
自動テスト走らせて終わりって話多くてすごいなぁってのと良いなぁってのをいつも思う

192:デフォルトの名無しさん (ワッチョイ fb46-IbiL)
17/01/05 21:37:50.19 rW/6GZ2i0.net
172です。皆さんありがとうございます。
無理に適用しようと思わないほうがいいんですかね。
まずは皆さんが言うようにロジックの分離を意識してみます。
>>184
ありがとうございます。ちょっと見てみます。

193:デフォルトの名無しさん (ワッチョイ 4fcb-626o)
17/01/05 22:00:20.10 OcKsuL+R0.net
>>185
その言葉が自分には当てはまらないと思ってるやつばっかりだからさ

194:デフォルトの名無しさん (スフッ Sdff-2e51)
17/01/05 23:04:36.88 QOSLe2yYd.net
>>187
GUIなら自動テストだけで済ますなんて不可能だもんな

195:デフォルトの名無しさん (ワッチョイ 5f90-pn3f)
17/01/05 23:11:41.74 EwRsaOli0.net
テストテストいってるやつは
テストエンジニアとなのるコーダー以下

196:デフォルトの名無しさん (ワッチョイ 2bbb-HvS5)
17/01/06 01:09:53.85 in81s7xm0.net
>>191
ここまでのクズはなかなかいない。

197:デフォルトの名無しさん (ワッチョイ 5f90-pn3f)
17/01/06 01:29:37.38 WSjKfiqE0.net
テストエンジニアと名乗るあほ会社がいたなー。
奴ら恥ずかしくねーのかね。開発できないからテストしてるだけなのに。

198:デフォルトの名無しさん (ワッチョイ 5b3c-bDM2)
17/01/06 02:04:56.09 b3HzQEm20.net
>>190
>GUIなら
それはちと違う。

199:デフォルトの名無しさん (ワッチョイ 6f13-2e51)
17/01/06 02:57:19.46 cmLDW6hw0.net
>>194
GUIを全部自動テストで済ませてるの?

200:デフォルトの名無しさん (アウアウイー Sa3f-WHJN)
17/01/06 02:58:26.63 GdJpzA35a.net
テスト屋バカにするとは、なかなか中小の発想だなあ。

201:デフォルトの名無しさん (ワッチョイ df17-51vH)
17/01/06 03:14:17.58 I3Occ/9i0.net
お前等の頭にここのスレタイを入力して応答を確認するテストをしてみてくれないか。

202:デフォルトの名無しさん (ワッチョイ df30-QVlo)
17/01/06 05:45:23.72 Zbbenqpe0.net
人類初心者ならこんなもんだろ

203:デフォルトの名無しさん (ワッチョイ 5b3c-bDM2)
17/01/06 06:15:51.87 b3HzQEm20.net
>>195
全部自動化できない理由はGUIだからではないだろ

204:デフォルトの名無しさん (スフッ Sdff-2e51)
17/01/06 09:23:52.69 zpqqPJuXd.net
>>199
全部自動テスト化できないのは必ずGUIであるなんて一言も言ってませんが

205:デフォルトの名無しさん (ワッチョイ df17-51vH)
17/01/06 11:09:41.00 I3Occ/9i0.net
見事にバグってるようだな。 < 頭

206:デフォルトの名無しさん (スップ Sdff-bDM2)
17/01/06 12:10:35.65 YJ4SgLJvd.net
>>200
必要条件と十分条件でググってこいwww

207:デフォルトの名無しさん (ワッチョイ bb63-QVlo)
17/01/06 12:38:38.84 k+rThWmR0.net
ググるより義務教育受けてこい

208:デフォルトの名無しさん (スフッ Sdff-2e51)
17/01/06 13:23:06.57 zpqqPJuXd.net
しょうもな

209:デフォルトの名無しさん (ワッチョイ 5f90-pn3f)
17/01/09 21:30:23.78 I4EKGEh90.net
PHP スレッドが死んでいたのでここで質問させて頂戴

echo mb_detect_encoding($asins[0][0], "JIS,SJIS,eucjp-win,sjis-win,UTF-8");
PHPで文字列の文字コードを判別する場合、
この様に引数に予め複数の文字コードを列挙する必要があるのでしょうか?
感覚的には、mb_detect_encoding関数の引数に
調査対象の文字列を入れれば、自動で文字コードが検出されるものかと思っておりました。

210:デフォルトの名無しさん (ワッチョイ 5b3c-bDM2)
17/01/09 21:43:37.92 qNaaD21i0.net
>>205
スレチ

211:デフォルトの名無しさん (ワッチョイ df17-51vH)
17/01/09 22:50:57.27 31i75J/I0.net
なぜにここで。w
せめてこっちで。
スレ立てるまでもない質問はここで 145匹目©2ch.net
スレリンク(tech板)

212:デフォルトの名無しさん (ワッチョイ 0bba-KSNS)
17/01/10 03:55:42.79 ZxwznXIF0.net
つか板違いじゃね
phpはwebprogだろ?

213:デフォルトの名無しさん (ワッチョイ 5b3c-bDM2)
17/01/10 07:27:16.02 x8VqU/Jr0.net
>>208
あそこ息してなくね?

214:デフォルトの名無しさん (オッペケ Sr3f-LKdv)
17/01/10 10:47:15.57 y5nNWUlVr.net
phpスレ死んでないじゃん
【PHP】下らねぇ質問はここに書き込みやがれ 7 [無断転載禁止]©2ch.net
スレリンク(tech板)

215:デフォルトの名無しさん (ワッチョイ 6b87-IbiL)
17/01/10 16:37:08.82 VMz618Ma0.net
DataGridViewのスクロールで質問させてください。
マウスホイールを1段階回すと、3行スクロールするのですが、
沢山スクロールさせたくて大きく回転させたときに、
3行ずつのスクロールがだらだら継続してスクロールするような
動作になってしまいます。
エクセルのスクロールみたいに、大きく回転させたときは、
短時間でまとめて何行もスクロールするようにさせるには、
どのようにすれば良いでしょうか。

216:デフォルトの名無しさん (ワッチョイ 4fce-O2rp)
17/01/11 03:14:29.19 rLEOP1iX0.net
WM_MOUSEWHEEL

217:デフォルトの名無しさん (ワッチョイ 67c0-q48i)
17/01/12 01:10:29.42 1UPTCkNR0.net
年末年始のバージョン談義を他人事だと笑ってたら、VS2005&2.0縛りの改修案件が来たでござる・・・
linqって便利だったんだな

218:デフォルトの名無しさん (ワンミングク MMe2-kkJw)
17/01/12 01:36:15.87 jfwpinV9M.net
同じ状況でジェネリック型推測が弱くて困ったな
ジェネリックメソッドに匿名デリゲートがうまく渡せないんだわ
これのせいでLINQの再現ができなかった

219:デフォルトの名無しさん (ワッチョイ 573c-Fvni)
17/01/12 01:51:54.01 qhQd7W/g0.net
>>213
バージョンにこだわってたやつは、結局最後までビルド方式を具体的に説明できなかったよな

220:デフォルトの名無しさん (スップ Sdf2-Fvni)
17/01/12 02:01:35.67 5xl7vtsqd.net
大方ビルドスクリプトすら書いたことなかったんだろ

221:デフォルトの名無しさん (ワッチョイ d3bb-dHfL)
17/01/12 02:33:46.24 arip6tnc0.net
Linqは糞やで。

222:デフォルトの名無しさん (ワッチョイ 26cb-TTK6)
17/01/12 05:22:30.14 Rz+H5K5o0.net
>>217
よくわかってるじゃん

223:デフォルトの名無しさん (ワッチョイ c387-YL17)
17/01/12 11:28:08.09 sl7x1gs80.net
>>212
>>211ですが、ありがとうございます。
そのプロパティを確認してみます。

224:デフォルトの名無しさん (ワンミングク MMe2-kkJw)
17/01/12 20:13:55.19 wTRJIMgPM.net
Linqは最高だろ
もうループなんて書きたくない

225:デフォルトの名無しさん (オッペケ Sr37-tin3)
17/01/12 20:24:43.40 pcmVyHykr.net
インストーラーはツール使うけどアップデータは自分で作るの?

226:デフォルトの名無しさん (ワッチョイ c387-YL17)
17/01/12 21:31:14.23 sl7x1gs80.net
210、218ですが、まさにやりたいことがこのページに掲載されていました。
URLリンク(point56.blogspot.jp)
ですが、このページで書かれている派生クラスの使い方が全くわかりません・・・。
いろいろ派生クラスについて説明されているページを見たのですが、
理解できないで困っています。
どのようにすれば(イベント登録すれば)、DataGridViewのマウスホイールイベントをこのクラスで拾うことができるのでしょうか。

227:デフォルトの名無しさん (ワッチョイ f65e-q48i)
17/01/12 21:36:29.73 PgQtmrLv0.net
>>222
そのコードを追加するとDataGridViewExという新しいコントロールが追加されるからデザイナから設定する

228:デフォルトの名無しさん (ワッチョイ c387-YL17)
17/01/13 09:09:29.07 8SyQt6YV0.net
>>223
ありがとうございます!
新しいコントロールを作るイメージなんですね。
既存のコントロールのイベントに割り込ませてデータを操作するものかと思ってました。

229:デフォルトの名無しさん (ワッチョイ bb42-o2zU)
17/01/13 15:34:39.80 djneXx1M0.net
>>224
継承ってのはそういうこと
既存のクラスを継承して何かを付け加える

230:デフォルトの名無しさん (ワッチョイ c387-YL17)
17/01/13 19:03:27.21 8SyQt6YV0.net
>>225
解説ありがとうございます。
また一つためになりました。

231:デフォルトの名無しさん (ワンミングク MMe2-kkJw)
17/01/13 19:26:27.17 wiy2qrIvM.net
どうしても多重継承したい
多重継承しないと人質が殺される
そんな時はどうすればいいですか?

232:デフォルトの名無しさん (ワッチョイ 573c-9HYG)
17/01/13 19:30:04.78 HmhyNPER0.net
人質を犠牲にしろ

233:デフォルトの名無しさん (ワッチョイ f69d-dHfL)
17/01/14 00:14:13.97 exppjyX70.net
正解

234:デフォルトの名無しさん (ワッチョイ d3bb-dHfL)
17/01/14 05:16:19.52 CFNCXkHH0.net
C++にする。

235:デフォルトの名無しさん (オッペケ Sr37-BaOC)
17/01/14 18:54:20.81 JH3WL89Lr.net
>>227
interfaceにして委譲コードを書きまくる

236:デフォルトの名無しさん (ワッチョイ d3bb-dHfL)
17/01/16 06:25:25.99 x3SkEOMR0.net
委譲コードってなんですか。

237:デフォルトの名無しさん (ワッチョイ f717-q48i)
17/01/16 23:34:39.66 eY5lFpG80.net
処理を委譲するので移譲(デリゲート)と呼ばれます

238:デフォルトの名無しさん (ワッチョイ d3bb-dHfL)
17/01/17 06:40:12.79 cbxfPpyL0.net
関数ポインタのことか。

239:デフォルトの名無しさん (ワッチョイ 7e23-q48i)
17/01/17 09:35:08.34 ku+L5HXP0.net
移譲コードは謎だが、継承に対する移譲ってことで、クラスのフィールドにクラスのインスタンスを生成して利用する形態のことかと
移譲コードってのは、その内部に有るクラスへのアクセス手段のコードってことかな?

240:デフォルトの名無しさん (ワッチョイ 924c-nun4)
17/01/17 11:24:04.19 PBcgESW70.net
関数ポインタってか、処理を動かす箱みたいな感覚

241:デフォルトの名無しさん (ワッチョイ 7e23-q48i)
17/01/17 13:32:23.97 ku+L5HXP0.net
>>236
いや、オブジェクト指向にはC#のデリゲートとは違う移譲という概念が有って、継承と似て非なるテクニックとして屡々使われる
URLリンク(ja.wikipedia.org)
C#のはこっち
URLリンク(ja.wikipedia.org)(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)

242:デフォルトの名無しさん (オッペケ Sr37-BaOC)
17/01/17 17:49:23.15 KIp0gGYMr.net
interface IX f1, f2, f3,...fn
interface IY g1, g2, g3,...gn
class A : IX, IY {
XImp x;
f1(){}
f2(){}
...
fn(){}
g1() => x.g1();
g2() => x.g2();
...
gn() => x.g3();
}
なんちゃて多重継承w

243:デフォルトの名無しさん (アウアウカー Sa5f-tnb3)
17/01/18 20:02:35.80 XUepeqxVa.net
お勉強でASP.NETかじりだしたらソースコード自動で吐くのはいいが、フレームワークのお作法ばっかでプログラミングの練習にならんのね
スタンドアロンアプリにネット接続みたいなことやったほうがプログラミングのスキルはつくのかね?

244:デフォルトの名無しさん (ブーイモ MM8b-7fB1)
17/01/18 20:05:28.14 m92xtUQhM.net
MVCの方やれば?
もっと原始的な仕組みだから何やってんのかよくわかるよ

245:デフォルトの名無しさん (ワントンキン MMe2-kkJw)
17/01/18 20:33:15.95 vXs3og/7M.net
ASP.NETが自動で吐くコードは正直使えない

246:デフォルトの名無しさん (スップ Sdf2-Fvni)
17/01/18 20:35:13.00 bBGXUnSyd.net
>>239
曖昧な言い方されるとわからん
ASP.NET Core触ってその感想なわけ?

247:デフォルトの名無しさん (ワッチョイ bbdc-lDPz)
17/01/18 22:05:09.42 cw6vafSX0.net
一口にプログラミングのスキルといっても色々ある
1. 複雑で大規模なロジックをエレガントに設計・実装できる
2. 難解なアルゴリズムを設計・実装できる
3. ハード・ミドルウェア・通信プロトコルなど、インフラを深く理解してプログラムから使いこなせる
ASP.NETで身につきにくく、より薄いWebフレームワークを使うことで身に付くのは3
一般的なアプリケーションエンジニアに求められるのは1
解析とかコンパイラ開発のような特殊分野の専門家は2

248:デフォルトの名無しさん (ワッチョイ 573c-Fvni)
17/01/18 23:21:54.21 T8mUfMDR0.net
>>241
具体的には何のコードのことを言ってるの?

249:デフォルトの名無しさん (ワッチョイ f3bb-3qL8)
17/01/19 07:29:23.09 q3hudiC70.net
求められてるのは仕様書もない糞コードを読むスキルやで。

250:デフォルトの名無しさん (ワントンキン MM9f-aDhR)
17/01/19 09:35:58.54 uhfgjGGlM.net
URLリンク(chrome.google.com)

251:デフォルトの名無しさん (ワッチョイ 230d-516J)
17/01/19 15:19:30.98 qAXGwWjx0.net
文字列からBOMを除去したいのですがどうすればいいですか?
stackoverflowにあった以下のコードを試しましたが、StartsWith()が常にTrueを返して困っています

private readonly string _byteOrderMarkUtf8 = Encoding.UTF8.GetString(Encoding.UTF8.GetPreamble());
if (str.StartsWith(_byteOrderMarkUtf8)) {
str = str.Remove(0, _byteOrderMarkUtf8.Length);
}

252:デフォルトの名無しさん (アウアウウー Sa67-gIHQ)
17/01/19 15:30:12.33 IRyNom+ra.net
BOMってのは生のバイナリーレベルの話であって
少なくともC#のstringに含まれるような代物じゃないと思うんだけど

253:デフォルトの名無しさん (ワッチョイ 9319-r4l2)
17/01/19 15:40:35.80 4wnEpswf0.net
BOMもUnicode文字の1つU+FEFFだからStringに入れることはできるよ
どっから入れるかは微妙なとこだけど(UTF8Encoding.GetStringは問答無用で消すみたいだし)
で試したけど"\ufeffA"はifに入って消えたし"A"はifに入らなかった

254:デフォルトの名無しさん (ブーイモ MM67-XRLM)
17/01/19 17:59:08.76 runhsDy0M.net
シリアル通信プログラムを作成しています。
メインスレッドでコマンド1を送信し、受信内容がAだったらコマンド2を送信するという処理にしています。
受信側(別スレッド?)の処理が終わる前にメイン側が受信内容の判断処理に入ってしまうため、本当に受信内容がAの場合でもコマンド2に移ることができません。
どのように対処すればよいでしょうか。

255:デフォルトの名無しさん (ワッチョイ 7f4c-VYni)
17/01/19 18:08:11.71 FKV8qOhE0.net
受信処理の整合性を判断して、受信処理からInvokeで判断処理を呼ぶ

256:デフォルトの名無しさん (ワッチョイ 03c0-SmTw)
17/01/19 18:10:12.42 HUduSCHL0.net
>>250
.NET4


257:.0の頃に似たようなことやったけどプロデューサー/コンシューマー パターン使ってBlockingCollection経由で受信スレッドと送信スレッドに分けたわ 今だとSystem.Threading.Tasks.Dataflowでもっとシンプルに出来ると思うけど



258:デフォルトの名無しさん (アウアウウー Sa67-gIHQ)
17/01/19 18:22:53.29 IRyNom+ra.net
>>250
何を言ってるのかよくわからないけど、ひょっとして、
送信→受信データ解析→送信
この一連の流れを一つのメソッドで完結させようとしてない?
だとしたらたぶんそれが間違ってる。
一連のシーケンスを処理する専用のオブジェクトを用意すればそんな問題は起こらない。

259:デフォルトの名無しさん (オッペケ Sr87-8S/4)
17/01/19 18:25:27.59 ACsZSSudr.net
c#を10年やってるのにまだ初心者の域を出ない…

260:デフォルトの名無しさん (ワッチョイ f37b-3qL8)
17/01/19 18:41:37.78 Ua4qBBzA0.net
C#だけやってても成長しないと思う
自分が理解できる範囲、自分が分かりやすい範囲でしか書かなくなるから

261:249 (ワッチョイ cfb8-3qL8)
17/01/19 19:07:45.79 TCIFCzqn0.net
>>251
ありがとうございます。
デリゲートで処理すればいいのですね。
>>252
ありがとうございます。
知らない単語が出てきたので調べてみます。
>>253
ご指摘の通りです。
送信メソッド:送信1→受信内容別に分岐→送信2
受信メソッド:DataReceivedイベントで受信

262:デフォルトの名無しさん (ワッチョイ 7f4c-VYni)
17/01/19 22:09:21.74 FKV8qOhE0.net
昔、VC++でシリアル通信の非同期処理してた事があってさ、それをC#で実現しようとして
SerialPortクラスのDataReceivedイベントと
Threading.TimerクラスのTimerCallbackにAutoResetEventを入れて、
WaitHandle.WaitAnyで待機してた事を思い出した。
いま、納品現場で確認してもらったけど今まで問題が起こってないんだが、
本来、C#のシリアル通信でOVERLAPPEDの非同期処理を実現するには、
やっぱWin32APIをゴリゴリ書かんとダメなん?

263:デフォルトの名無しさん (ワッチョイ 6f02-x7a5)
17/01/20 02:24:48.66 rKwDbfSd0.net
シリアルで非同期ってどういうことかわからん
全2重のことを非同期っていってるのか?

264:デフォルトの名無しさん (ドコグロ MM7f-j6UX)
17/01/20 08:16:43.67 ymDflbNbM.net
>>258
>>257 はいわゆる非同期I/O とかOverlapped I/Oの話でしょ
コマンド投げといて並行して何らかの処理を行って暇になったらデータ受信するって奴
まあ通常のシリアルドライバは常時受信してバッファーに溜め込んでるからあまり意味ないけど

265:デフォルトの名無しさん (ワッチョイ 7f4c-VYni)
17/01/20 09:21:01.06 aZ8cT+JU0.net
ふと気になっただけだ。
ごねんね、スレ汚して

266:デフォルトの名無しさん (ワッチョイ 8fce-HQXh)
17/01/20 12:29:54.12 JXdqXSkU0.net
C#脳だとどういう事か判らんのだな
やっぱ知識が偏るよなあ

267:デフォルトの名無しさん (ワッチョイ 6f02-x7a5)
17/01/20 12:49:05.39 rKwDbfSd0.net
>>259
それはシリアル通信での話じゃないし。その上の層とアプリ層との間での話だろ
どんな通信してようが、ローカルファイル読んでようが同じ、単なる非同期IOの話だし
まあバッファリングしないシリアル通信相手に非同期IOかけても結局待つしかないけどな

268:デフォルトの名無しさん (アウアウウー Sa67-gIHQ)
17/01/20 13:16:41.69 98BzuqOpa.net
>>262
何を言ってるのかなこの人...

269:デフォルトの名無しさん (ドコグロ MM7f-j6UX)
17/01/20 19:45:39.69 ymDflbNbM.net
>>257 を読んで全二重とかいっちゃう人なのでお察しってことなんでしょ w

270:デフォルトの名無しさん (ワッチョイ bf85-ZNqe)
17/01/20 20:39:08.06 BC+BfvLQ0.net
質問です!
今日からC#を勉強始めました
配列のコピーをしたいのですが
ここのサイトをみると配列サイズに+1しています
string[] newAuthors = new string[authors.Length + 1];
+1せずに
string[] newAuthors = new string[authors.Length];
でいいと思ったのですが私の間違いでしょうか?
URLリンク(www.woodensoldier.info)

271:デフォルトの名無しさん (JP 0H07-SmTw)
17/01/20 21:07:21.40 05MQpXAxH.net
やってみればいいんじゃない?

272:デフォルトの名無しさん (ワッチョイ ff17-x7a5)
17/01/20 21:42:02.36 MJq7L3EO0.net
何の用途か知らないけど、ひょっとしてタイマーコールバック使ってるとこ見ると
Task.Run( () =>
{
} );
で囲むだけでお気楽マルチスレッドになることを知らないとか?

273:デフォルトの名無しさん (ワッチョイ f3bb-3qL8)
17/01/20 21:46:16.09 ao0q6onS0.net
なんというかイラってくるレス

274:デフォルトの名無しさん (ワッチョイ 7fe1-ws0G)
17/01/21 01:34:13.79 XoO/Nzrc0.net
>>265
+1は不要だね

275:デフォルトの名無しさん (ワッチョイ 8fcb-YAkb)
17/01/21 01:34:35.71 O/GZ8TN60.net
>>267
カッコ内の処理が下に記述された処理より後に実行されるのがお気楽でないね
複数書いたらどれが一番最初に実行されるんだろか?
ってところを実はよくわかって使っていないことが同僚にバレるのも時間の問題なわけだよ

276:デフォルトの名無しさん (ワッチョイ bf85-ZNqe)
17/01/21 08:30:00.84 7Cy++wUg0.net
>>269
ありがと~

277:デフォルトの名無しさん (ワッチョイ 7f4c-VYni)
17/01/21 11:25:24.95 wJLBUXJS0.net
>>267
通信プロトコルで、48bit時間以上の無受信で一区切りなんだけど、ドライバーでSerialPortクラスのReadTimeoutプロパティ(SetCommTimeouts関数)に完全対応していないものが多いから、そのタイマーを用意すた。
今だったら、Task.WaitAnyの一つをタイマーにしとけば楽チンだったかもね。

ところで、C#でWin32のWaitbleTimerのような、そのまま待機メソッド(Wait, WaitAll, WaitAny)に対応してるタイマーってあるの?

278:デフォルトの名無しさん (アウアウウー Sa67-gIHQ)
17/01/21 12:31:23.14 iYYQzwCfa.net
ドライバレベルで対応するような機能かなそれ。違うような気がするけど。
ドライバって言ってるんだからシリアルUSB変換ブリッジを使ってるんだろうけど、
だとしたらそもそもUSBが間に入ってるために48bit時間なんて概念が無効なだけだと思うけど

279:デフォルトの名無しさん (ワッチョイ ff3c-j6UX)
17/01/21 13:03:52.44 1cIKmUbZ0.net
>>273
> ドライバって言ってるんだからシリアルUSB変換ブリッジを使ってるんだろうけど、
あまり知ったかしない方がいいかと...

280:デフォルトの名無しさん (アウアウウー Sa67-gIHQ)
17/01/21 13:09:00.67 iYYQzwCfa.net
うんお前がね
普通にPCIやExpressのバスにぶら下がる形のシリアルの拡張ボードで
特別のドライバを必要とするものなんか見たことないよ
OS標準で最初から入ってるんだから

281:デフォルトの名無しさん (ワッチョイ 8fce-HQXh)
17/01/21 13:41:03.09 oJxw4Shh0.net
48bit時間が何ミリ秒なのか知らんけど本当なら間にマイコンとかでブリッジかますような案件じゃねえの
PC側で設定したタイムアウトのアバウトさで済む話なのかねえ
業務で使うなら破綻すると思うけど

282:デフォルトの名無しさん (ワッチョイ ff3c-j6UX)
17/01/21 14:08:54.55 1cIKmUbZ0.net
>>275
だからいちいち無知晒さんでいいから
URLリンク(www.contec.co.jp)

283:デフォルトの名無しさん (ワッチョイ 7f4c-VYni)
17/01/21 14:09:01.72 wJLBUXJS0.net
272、275が近いね。
シリアルTTLのチップがあって、そのドライバーには関数名のプレースホルダーは用意してるがタイムアウトは機能してないって回答をいただいてる。で、プロトコルのルールに従ってタイマーを用意しただけだ。
もちろん、もうこんな仕事は請けんけどな。

ただ、興味で待機メソッド対応のタイマーってC#であるん?ってのが知りたかっただけ。

284:デフォルトの名無しさん (ワッチョイ cf9d-3qL8)
17/01/21 14:18:24.01 dBVmTL1r0.net
48bit時間ってのがどのくらいの長さなのか知りたいだけ

285:デフォルトの名無しさん (ワッチョイ ff17-x7a5)
17/01/21 14:23:49.09 JwMYXArD0.net
マルチスレッド使いながらある瞬間だけシリアル化したいならそこだけ別関数に切り出して
[MethodImpl( MethodImplOptions.Synchronized )]を付けるとお気楽だよ
(ある電気メーカーが作ったシステムのバグをそれで直したことある)

286:デフォルトの名無しさん (ワッチョイ 7f4c-VYni)
17/01/21 14:41:37.57 wJLBUXJS0.net
たしかボーレートの最大が115kだったんで、最短は0.4msecぐらいだったかな…って。
フレーム11ビットで4文字分ぐらい。

で、もうこの話題良いよな?

287:デフォルトの名無しさん (ワッチョイ 13dc-jh1Y)
17/01/21 14:51:59.06 Poucv/rB0.net
>>280
それthisをロックするから.NETの推奨作法に反してる
thisのロックは外に漏れるから予期せずクラス外の排他処理と干渉して
パフォーマンスが落ちたりデッドロックしたりする原因になる可能性がある

288:デフォルトの名無しさん (オッペケ Sr87-8S/4)
17/01/21 18:33:09.25 LuBTyI4Rr.net
WinFormで画像関連の処理(主に合成)をゴリゴリ書いてたらむちゃくちゃ重くなった
ゲームって1/60秒とかで膨大なレンダリングと合成を繰り返しつつ、AI処理とかアニメ、スキン処理とかやってるんだよな
なんでたかが画像の合成ごときで重くなってゲームだとものすごく速く処理できるのかね?
全然わからん

289:デフォルトの名無しさん (ワッチョイ cf5e-SmTw)
17/01/21 18:38:02.55 4zEMZhpt0.net
>>283
GDIに全部やらせたら遅くなるな
合成とかはバイト配列で必要な部分だけやって表示するだけ迄に持っていくとか
DirectXやUnityに画像処理部分やらせるとか
最後はC#じゃなくC++でやるとかw

290:デフォルトの名無しさん (ワッチョイ 33d6-3qL8)
17/01/21 18:50:02.22 RZU7JwAh0.net
実装がクソで遅いこともある
文句を言う前にプロファイラとかで調査しような

291:デフォルトの名無しさん (ワントンキン MM9f-Taza)
17/01/21 19:02:39.13 W/zpHkC+M.net
プロファイラの使い方よくわからんし

292:デフォルトの名無しさん (ワッチョイ f3bb-3qL8)
17/01/21 19:13:16.83 0VDH7cX80.net
C++と違ってC#にはどうやっても超えられない壁があるんだよ。

293:デフォルトの名無しさん (ワッチョイ 9377-8QYx)
17/01/21 20:19:14.82 g8nBrPXf0.net
要所をunsafeにすることで相当効果出る場合もあるけどね。

294:デフォルトの名無しさん (ワッチョイ 1342-sQpi)
17/01/21 20:28:06.61 AZ4jUWLU0.net
餅は餅屋
あとopenGLね

295:デフォルトの名無しさん (ワッチョイ f3bb-3qL8)
17/01/21 21:33:09.90 0VDH7cX80.net
>>288
undafeの突入、脱出のコストが高すぎて、
丸ごとunsafeに入る規模のコードしか高速化できない。

296:デフォルトの名無しさん (ワッチョイ c33c-r8v3)
17/01/21 22:19:24.72 LzlUxaG40.net
>>287
まあ目指すところが違うから当然だわな

297:デフォルトの名無しさん (ワッチョイ 13dc-jh1Y)
17/01/21 22:50:54.76 Poucv/rB0.net
やってることが同じならC#とC++で速度なんか大して変わらん
少なくともスクリプト言語みたいに数桁遅いってことはないから、
C#で書いたコードそのものがボトルネックになってるときに
そのままC++に書き直したってボトルネックが解消することはまず無い

298:デフォルトの名無しさん (ワッチョイ 83a1-5ScM)
17/01/21 23:02:05.21 pcFLx4Ty0.net
越えるも何も基本越えられちゃ困るから壁を作ってる訳で

299:デフォルトの名無しさん (オッペケ Sr87-8S/4)
17/01/21 23:11:22.69 LuBTyI4Rr.net
それにしてもGDIでのレンダリングとゲーム用のレンダリング、雲泥の差じゃない?
画像処理はGPUで計算させればぶっ飛びで速くなるの?
あとポインタ紛いを使えばぶっ飛びになる?

300:デフォルトの名無しさん (ワッチョイ 13dc-wwrd)
17/01/21 23:15:44.15 Poucv/rB0.net
>>294
GPUを使えば爆速になるのは正しいが、ポインタは要らん
画素にリアルタイムで変換をかけたかったらピクセルシェーダ使え

301:デフォルトの名無しさん (ワッチョイ cf9d-3qL8)
17/01/21 23:35:53.59 dBVmTL1r0.net
合成に何に使ってるの?
Graphics.DrawImage()はクッッッッソ遅いよ

302:デフォルトの名無しさん (ワッチョイ cf9d-3qL8)
17/01/21 23:38:32.57 dBVmTL1r0.net
×:何に
○:何

303:デフォルトの名無しさん (ワッチョイ ff4a-SmTw)
17/01/22 00:33:58.14 WHkammw20.net
GDIは速度求めるなら使い物にならない
業務アプリのコントロールのデザイン弄る程度なら十分使える
3Dゲームの画像処理ならGPU処理一択
っても自力でガリガリ書かなくて済む時代

304:デフォルトの名無しさん (JP 0H07-OQjX)
17/01/22 01:11:33.09 eCbhYovmH.net
>なんでたかが画像の合成ごときで重くなって
つーか、具体的にどんな合成やってるか知らないが、画像処理って下手すりゃピクセル単位で
チマチマだし、オレの中では基本的に重たそうなイメージがあるけどなあ

305:デフォルトの名無しさん (ワッチョイ f3bb-3qL8)
17/01/22 01:19:16.26 H+suNOjg0.net
>>292
LINQ使うだけで数桁遅い。それが分からない奴はその程度のコードしか書いたことがないということ。
C#、.netの制約上のボトルネックはC++で消し飛ぶ。

306:デフォルトの名無しさん (オッペケ Sr87-Hq25)
17/01/22 02:21:36.81 bOybKaZ+r.net
我慢大会その一

307:デフォルトの名無しさん (オッペケ Sr87-8S/4)
17/01/22 03:39:23.27 EI5AfIBCr.net
>>295
プログラマじゃないけど前にゲーム業界にいたからピクセルシェーダは使ったことある
使ってみるかな
>>296
それですね
アルファ合成のときだけBitLocker使ってるけど
あとはGraphicsPathとか
>>298
そっち系の本買って勉強しようかな
ゲームプログラマならc++でやれるんだろうなあ
勉強してみたけど俺にはいろいろ無理だった…

308:デフォルトの名無しさん (ワントンキン MM9f-Taza)
17/01/22 07:39:48.76 4NhSs4FyM.net
Linq遅いマンまだいたんだ
Linqじゃなくてお前のコードが酷いだけじゃん

309:デフォルトの名無しさん (ブーイモ MM1f-wwrd)
17/01/22 08:45:32.72 mrTIs+uVM.net
>>302
Unity使えばいいのに
今時スクラッチで開発なんかしないよ

310:デフォルトの名無しさん (オッペケ Sr87-8S/4)
17/01/22 10:17:10.34 EI5AfIBCr.net
>>304
まあそれもアリなのかな…
たしかにGPUで合成できるし
Unityで作った画像編集ソフトかあ

311:デフォルトの名無しさん (ワッチョイ 33d6-3qL8)
17/01/22 10:45:08.68 kO0RN1SM0.net
>>303
具体例も挙げられないおじいちゃんだから仕方ないね

312:デフォルトの名無しさん (ワッチョイ ff4a-SmTw)
17/01/22 10:58:17.59 WHkammw20.net
Linqもラムダ式も一度使うともう戻れねーよな
EFと合わせたら生産性ぱねぇし

313:デフォルトの名無しさん (ワントンキン MM9f-Taza)
17/01/22 11:08:50.22 4NhSs4FyM.net
EFは正直どうかと思うが
パブリックプロパティだらけになって
システムのあっちこっちにビジネスロジックが分散して管理しきれなくなる
そうではなくOOPの良い習慣にしたがってビジネスロジックをクラス化する
クラスインスタンスの永続化方法も合わせてカプセル化して最小限にとどめる
こうしておけばデータアクセス処理に大した工数はかからない
工数削減の夢を見て変なフレームワークに頼って自滅することもなくなる

314:デフォルトの名無しさん (ワッチョイ 13dc-jh1Y)
17/01/22 11:09:17.59 phG9hQKS0.net
LINQやラムダ式はメソッドの expression body definitions でかなり使いやすくなった
ちょっと込み入ってて分かりにくいラムダがあったら手軽にメソッドに括り出して名前を付けられる

315:デフォルトの名無しさん (ブーイモ MM1f-wwrd)
17/01/22 11:19:16.48 mrTIs+uVM.net
>>308
本来はそのビジネスロジックを実装するときに内部でEFを使うんだよ
所詮シリアライザとクエリビルダにすぎない

316:デフォルトの名無しさん (ワントンキン MM9f-Taza)
17/01/22 11:28:38.11 4NhSs4FyM.net
>>310
だからそれをやるとジワジワとトランザクションスクリプト的な実装になっていって管理が追いつかなくなるってこと

317:デフォルトの名無しさん (ワッチョイ ff4a-SmTw)
17/01/22 11:28:58.51 WHkammw20.net
Linqが速度を売りにした技術として登場したわけじゃないわけで。
道具の使い方が悪い例を出して、道具に文句出されてもなぁ。
性能が必要なシナリオなら、システム構成、技術やアルゴリズム、言語を使いわけるものですからね。
業務系の話を例にすると。
Linqのループ処理の遅さは、数桁すら許容できるケースが多く、
DB側で絞ってるのでC#側で大量のループをぶん回すような事はしない。
テキストファイルやDB、メモリ相手のデータでもLinqは透過的に処理できるから便利。
Linqは、コレクションに対する生産性の高さが有益なんであって、
単純なループを例にしてLinqが遅いとしか言えないなら、話にならん。

318:デフォルトの名無しさん (ワッチョイ ff30-QGIP)
17/01/22 11:31:54.78 0QiRTW2m0.net
馬鹿だから一つしか覚えられない人間に二つ目を覚えろというのは酷ではありませんか?
おそらく高脳様なんでしょうけどド低脳に対する配慮が足りませんよ

319:デフォルトの名無しさん (ワッチョイ ff4a-SmTw)
17/01/22 11:58:44.67 WHkammw20.net
>>308
もちろんEFを使うときは、レイヤーをちゃんとわけて、カプセル化する前提ね。
ビジネスロジックも、モデルもサービスも必要に応じてちゃんと分ける。
依存関係の多いDataTableに比べたら、EFはPOCOだから、詰む事は少ないと思う。
ビジネスロジックやトラン処理がどこに来るかは、
サービス層・ドメインモデル・エンティティモデルのどこに入れるか次第だろうね。
ORMやDAC代わりにEF導入する現場なら、余計にね。
管理が追いつくかどうかは、開発の規模と設計、プロジェクト構成次第じゃない?
うちは、1ドメインで作らず適度にドメイン分割してるから複雑さは低減できてるし。
CQRSなパターンで組んだら、さらに管理が楽になった。
工数削減の夢を見る奴は、いつの時代も論外だぬw

320:デフォルトの名無しさん (ワントンキン MM9f-Taza)
17/01/22 12:18:58.56 4NhSs4FyM.net
しっかりとレイヤ分割してるならなおさら生ADO.NETでもEFでも大した差はでない
ビジネスレイヤまでEFが染み出してくると最初は便利かなと思うが後になって後悔する
EFは本来privateであるべきプロパティが野晒しになるからロジックの分散を避けられない

321:デフォルトの名無しさん (ワッチョイ a394-GGaX)
17/01/22 12:28:22.49 opZW6Xxw0.net
避けられなくないだろ。避けろよ
「染み出す」ってなんだよ。書くべきじゃない場所に書くな。染み出させるな

322:デフォルトの名無しさん (ワントンキン MM9f-Taza)
17/01/22 12:37:09.50 4NhSs4FyM.net
そう
書くべきじゃないところには書くな
これを実践するとEFがビジネスレイヤに染み出してくることはない
EFのスコープはデータアクセスレイヤに限定される
しかしそうなると生ADO.NETに対してそこまで大きな優位性は得られなくなる
生ADO.NETを使った場合でも結局のところデータをビジネスロジックのクラスインスタンスにデータをマップして使うのだから

323:デフォルトの名無しさん (ワッチョイ ff4a-SmTw)
17/01/22 12:45:18.70 WHkammw20.net
レイヤ分割してるなら大差ないというのは確かにそう。
DataTableはNULL周りが良くないんよね。XMLWebサービス時代にはお世話になったが。
で、染み出してくるのはPOCOなクラスであってEFではないよ。
POCOなクラスをそのまま使ってるから生じる問題。
DataTableのプロパティのスコープ制御に相当する機能が
EFのモデルには無いと思ってるように聞こえるから、その前提で話をすると。
EF6からはnon-publicなフィールドも、シリアル化可能だから制御可能よ。
private/protectedで隠ぺいしつつ、DBに保存とかも出来る。
6以前でもやろうと思ったら自分でそう書けばできる。

324:デフォルトの名無しさん (ワッチョイ ff4a-SmTw)
17/01/22 12:48:38.01 WHkammw20.net
いずれにせよ、便利なとこにだけ目を付けて
そういう問題点まで考えずに導入しちゃう現場の方が問題だろうねw
全publicなプロパティで困ってるならご愁傷様です。

325:デフォルトの名無しさん (アウアウカー Sac7-RtDt)
17/01/22 12:50:26.90 8/XlH/DIa.net
おまえらどんな修行積んだらそんななれるんだよ。。
独学やってる俺からみると心折れそうだわ

326:デフォルトの名無しさん (ワッチョイ f3bb-3qL8)
17/01/22 12:53:59.02 H+suNOjg0.net
>>307
LINQのサンプル書けば分かる話で、昔から散々言われてたこと。
速度が必要ならLINQ使うな、楽したいならLINQ使え。それだけ。
それをLINQは遅くないだの、C#とC++の速度差はないだのは、全くの捏造、デタラメ。素人の知ったか。
今回の話題で遅いのは画像処理。画像処理に糞遅いLINQ使う馬鹿はいないんだよ、糞ガキ。

327:デフォルトの名無しさん (ワッチョイ ff4a-SmTw)
17/01/22 13:20:05.54 WHkammw20.net
>>321
馬鹿にしてるのも、素人発言してるのも俺じゃないのに、
なんでそんな悪態つくのかわからんがwww
ちゃんとワッチョイかID見ろよ
C#やLinqが、C++並みとか早いと言ってるのは俺じゃないぞ
画像処理かつ性能必要なとこで、Linqで組む奴が居たら馬鹿だろ

328:デフォルトの名無しさん (ワッチョイ c33c-5mR9)
17/01/22 14:03:47.83 W8T+cplZ0.net
デリゲートってどういうときにどう使ってますか?
使ってみようと思ってるんですけど、、、
パスドラみたいなゲームだとどう使うとよかったりするんですかね?

329:デフォルトの名無しさん (ブーイモ MM1f-wwrd)
17/01/22 14:31:47.38 q7Ms9629M.net
>>323
お前がこれまでイベントやLINQやラムダを使ったことがあるなら、お前は既にデリゲートを使っている
デリゲート型の定義は昔の名残みたいなもんで、今更あえて自分でデリゲートを定義する必要はない

330:デフォルトの名無しさん (アウアウウー Sa67-gIHQ)
17/01/22 15:08:27.54 w8qlDydna.net
>>323
いきなり人をお前呼ばわりするような奴の話は無視していいと思うw
彼がなぜ見知らぬ他人にそんな横柄な態度を取るのかお察し(略
前にも書いた気がするけど、BCLで実際にどういう使われ方をしているかを見て理解するのが一番早い。
例えばList<T>なんかのSortメソッドにはデリゲート(Comparison<T>)を引数に取るバージョンと
インターフェイス (IComparer<T>)のバージョンがあるが、この2つを比べてみるとか
デリゲートの意義は変数(入れ物)を作れることにある。
int型の変数にintの値を自由に入れることができ、intのリテラルと同じように式の中で使えるように
デリゲート、例えばAction型の変数には引数なし、戻り値なしのメソッドを自由に入れることができ、
普通のメソッド呼び出しと同じように変数の中のメソッドを呼び出すことができる。

331:デフォルトの名無しさん (ササクッテロレ Sp87-5mR9)
17/01/22 17:22:01.36 9cOLculsp.net
お二方どうもです!
いまunityやってて、なんか自分で定義して使ってみたいんですけど、わざわざ定義して使う必要もないのかと思ったり思わなかったり、、

332:デフォルトの名無しさん (ワッチョイ a394-GGaX)
17/01/22 17:39:15.02 opZW6Xxw0.net
Action や Func という便利な「定義済みデリゲート」があるので
>>325 のいう「 Comparison<T> 」もそう)
いまや、自分で定義する必要はあまりないような…
言葉遣いはぞんざいだったけど、>>324 が言いたいのもそういうことだったのでは

333:デフォルトの名無しさん (ワンミングク MM9f-Taza)
17/01/22 17:45:53.28 mco4N0ihM.net
>>323
ストラテジーパターンを使いたいなぁと思った時にめんどくさいからデリゲートとラムダを使おう
その程度の認識でいいよ

334:デフォルトの名無しさん (ワッチョイ 33a1-IReq)
17/01/22 20:04:36.92 uhRlBKGc0.net
.の意味ってなに?
スペースと何が違うの?

335:デフォルトの名無しさん (ワッチョイ 0390-waAN)
17/01/23 22:56:49.49 +/l1sI5v0.net
自分でhttpwebrequest、httpwebresponseのラッパークラスを作っているんですが、どうも使いづらいです
通信エラーが起きてもResponseCodeわからないですし、例外もうまくキャッチすることができません
こういうクラスってひょっとしてラップしても意味ないですか?
WebrequestやDownloadStringなどを使わないのはCookieなどを付与する必要があるためです

336:デフォルトの名無しさん (ワッチョイ 9377-8QYx)
17/01/23 23:02:45.38 bI3M8V880.net
>>330
今からやるならHttpClient

337:デフォルトの名無しさん (ワッチョイ cf9d-3qL8)
17/01/23 23:36:42.09 iMdxUfkB0.net
WebClientにCookie持たせる

338:デフォルトの名無しさん (ドコグロ MM7f-j6UX)
17/01/24 12:50:22.17 HHZbO6egM.net
>>330
意味がわからん...
自分で作ってるなら使いやすいように作ればいいだけじゃないの?

339:デフォルトの名無しさん (ワッチョイ b30d-516J)
17/01/25 15:07:13.59 3WJkXYG20.net
HttpClient WebClient WebRequest HttpRequest の違いがわかりません

340:デフォルトの名無しさん (ワッチョイ 63a4-QGIP)
17/01/25 22:04:46.00 Bb3u5ckd0.net
ふーん

341:デフォルトの名無しさん (ワッチョイ 33d6-3qL8)
17/01/25 22:18:36.99 W75ZhGr50.net
>>334
聞く前にググれ

342:デフォルトの名無しさん (アウアウイー Sa53-T3y8)
17/01/26 07:18:39.25 hf6GrTPoa.net
>>334
ググったなんて日本語が分からなかったの?

343:デフォルトの名無しさん (ワッチョイ 2613-uaQk)
17/01/26 09:58:48.02 sSYf7dfw0.net
>>337
ha?

344:デフォルトの名無しさん (ササクッテロラ Sp13-YLIH)
17/01/27 02:09:00.56 mwRO9ggOp.net
TextBoxの文字をクリックしたときにその行に頭が特定の文字ならアクションを起こすようなものを作りたいのですが
TextBoxクラスのGetCharIndexFromPosition(Point)で文字を取得するとクリック位置が文字の上から外れた場所でも取得できてしまいます
文字上でクリックされた時のみを感知したいのですが何かいい方法があれば教えてください

345:デフォルトの名無しさん (ワッチョイ 1ad4-AZYz)
17/01/27 12:09:25.78 7rtouHaU0.net
検索(SQLを投げた)結果を非同期でフォーム表示させようとしてます。
SqlCommandを組み立ててBeginExecuteReaderしました。
AsyncCallback 先で、EndExecuteReaderを実行し
DataTableに収納させるまではデバッガで動作確認できました。
ここからが問題なのですが
DataTableの内容をForm(DataGridView)で表示されようと思いました。
DataGridViewが貼り付いているFormをnewで生成し、DataGridView.DataSourceにDataTableを入れました。
最後にForm.Showでフォームが開くことを期待したのですが、フォームの枠が出るものの中身が真っ白
キャプションは「応答なし」と出て表示も操作もできません。
最初にBeginExecuteReaderした側のメインスレッドは普通に動いてます。
どうやったら、AsyncCallback 先でフォームを新規表示させることができるんでしょうか。

346:デフォルトの名無しさん (ワッチョイ d3c0-y5A3)
17/01/27 13:41:41.66 f0Kj2+Uu0.net
>>340
デバッガ使っているならForm.ShowのところでDataGridView.DataSourceにDataTableが入っているか見てみれば?

347:デフォルトの名無しさん (ワッチョイ 9719-VXgO)
17/01/27 14:04:14.64 FcmXFO0M0.net
今更AsyncCallback系とかどんな環境なのやら
サブスレッドでForm触るとろくなことにならないから
AsyncCallback内で全データ取得
→FormとかのBeginInvokeでメインスレッドでフォーム作って表示

348:デフォルトの名無しさん (ワッチョイ 1ad4-AZYz)
17/01/27 14:20:45.68 7rtouHaU0.net
>>341
そこは問題ないです
描画のところでサブスレッドに順番が回ってこないぽい感じです
>>342
>今更AsyncCallback系とかどんな環境なのやら
イマドキは別の方法があるんでしょうか
確かに、Callbackは面倒です。゜
やりたいのは、時間のかかるExecuteReaderで全てがブロックされることを防ぎたい、ってことです

349:デフォルトの名無しさん (スッップ Sdca-OKVk)
17/01/27 19:49:21.84 oQLdhHNUd.net
>>343
.NET Frameworkのバージョンいくつよ?

350:デフォルトの名無しさん (ワッチョイ af4a-y5A3)
17/01/27 21:29:15.85 +Ih6k9xI0.net
質問です。
object o = new List<string>();
このstringのところを文字列(を格納した変数)で指定したいのですが、どうすればいいでしょうか?
object o = new List<"string">(); ← こういうことをやりたい。
よろしくお願いします。

351:デフォルトの名無しさん (ワッチョイ f7dc-ci5U)
17/01/27 21:35:00.20 sOrVpnzk0.net
>>345
本当に文字列で指定したいのではなく、動的に型を指定してジェネリックリストを作りたいという要求だと仮定して回答
var argType = typeof(string);
var listType = typeof(List<>).MakeGenericType(argType);
var o = Activator.CreateInstance(listType);

352:デフォルトの名無しさん (ワッチョイ af4a-y5A3)
17/01/27 21:37:34.16 +Ih6k9xI0.net
>>346
早速の返答ありがとうございます。
そういう意図で合っていると思いますが、その3行をぱっと見では理解不能なので、テストしてきます。

353:デフォルトの名無しさん (ワッチョイ af4a-y5A3)
17/01/27 21:59:53.20 +Ih6k9xI0.net
>>346
申し訳ないです、質問で出した例えが悪かったです。
本当にやりたいのはJSONのデコードでなんですが、JSON.NETを使って
var o = JsonConvert.DeserializeObject<Hoge>(json);
このHogeの部分を動的にしたいのです。

354:デフォルトの名無しさん (ワッチョイ 2b4a-H6k8)
17/01/27 22:04:04.24 7pKAIIad0.net
>>348 Hogeの数だけifかswitchで分ければいいんじゃないか?



356:デフォルトの名無しさん (ワッチョイ af4a-y5A3)
17/01/27 22:09:45.37 +Ih6k9xI0.net
>>349
ずらずらと並べて書き始めて、
ふと動的に出来ないものかと思ってしまいましたが、
素直にそうやった方が手っ取り早いですかね。
ありがとうございました。

357:デフォルトの名無しさん (ワッチョイ f7dc-ci5U)
17/01/27 22:09:50.40 sOrVpnzk0.net
>>348
それを動的にやって何がしたいのか激しく疑問
どのみちobject型として扱うしかないんだから DeserializeObject(string)


358: でobject型にデシリアライズすればいいだろ >>349と被ったが、後で as や is でHogeにダウンキャストするんだったらその選択肢は予め決まってるはずだから、 switch (str) { case “Hoge”: type = typeof(Hoge); break; case ・・・ } みたいにすればいいだけ それでも本当にどうしても文字列で指定しなきゃいけないというなら Type.GetType(“俺の名前空間.” + str) でできなくはないけど、まず意味はないと思う



359:デフォルトの名無しさん (ワッチョイ af4a-y5A3)
17/01/27 22:50:37.80 +Ih6k9xI0.net
>>351
> それを動的にやって何がしたいのか激しく疑問
自分も質問文を書きながら、そう思われるだろうなと思っていました。
たぶん、こんなことをしたいと思いつく考え方が、そもそも間違いの可能性が高そうなのですが、
なぜこういうことを思いついたかというと、一つの問い合わせに対して返ってくるJSONの型が
複数あったりするので、どうやれば上手くまとまるかな? と考えたのがはじまり。
成功時→ {"person":{"name":"だれそれ","age":20}}
失敗時→ {"noresponse":{"message":"該当なし"}}
エラー→ {"error":{"number":1,"message":"error message."}}
頭の文字列(personなど)引っ張り出して、対応する型名(Person)をHashtableなんかから引っ張り出せばいいかなと。
hashtable.Add("person","Person");
hashtable.Add("error","Error");
...
object Json2Object(string json)
{
string typename = Regex.Match(json, @"\{""([^""]+)").Groups[1].Value
var o = JsonConvert.DeserializeObject<$$hashtable[typename]$$> (json);
return o;
}
呼び出した側では結局as is しますが、こんな発想自体ナンセンスですか?

360:デフォルトの名無しさん (ワッチョイ f7dc-AomC)
17/01/27 22:55:29.64 sOrVpnzk0.net
>>352
結局呼び出し元でキャストするんならJson2Objectをジェネリックメソッドにすればいいだけでは?

361:352 (ワッチョイ f7dc-ci5U)
17/01/27 23:00:09.77 sOrVpnzk0.net
いやすまんJSONに含まれるフィールドに応じて型を変えたいってことか
単に Dictionary<string, Type> でよくね?

362:デフォルトの名無しさん (ワッチョイ af4a-y5A3)
17/01/27 23:07:41.42 +Ih6k9xI0.net
>>354
なんどもありがとうです。
dictionary.Add("person",typeof(Person));
var o = JsonConvert.DeserializeObject<dictionary["person"]>(json);
と言うことでしょうか?
VS2015 .NET4.6 では出来なさそうなのですが。

363:デフォルトの名無しさん (ワッチョイ f7dc-ci5U)
17/01/27 23:25:42.83 sOrVpnzk0.net
>>355
var o = JsonConvert.DeserializeObject(json, dictionary["person"]);

364:デフォルトの名無しさん (ワッチョイ af4a-y5A3)
17/01/27 23:33:36.50 +Ih6k9xI0.net
>>356
なんと!!
自分の調べ不足を痛感しました。
ほんとうにありがとうございました。

365:デフォルトの名無しさん (ワッチョイ 2a4a-y5A3)
17/01/28 00:50:12.18 4RGYrg++0.net
斜め読みだが
やっぱDictionaryで済む話やなw

366:デフォルトの名無しさん (ワッチョイ 0faf-56sz)
17/01/28 01:52:46.60 7wXqm53L0.net
>>339
自己解決しました
表示からは見えなくてもTextBox.Textには改行コードが含まれていたのですね
GetCharIndexFromPosition(Point)で取得したインデックスの文字ををcharに入れてみて初めて気が付きました
欲しい文字の判定時についでにクリックされた文字が\nではないかを調べることで実現できました

367:デフォルトの名無しさん (ワッチョイ af4a-WsPK)
17/01/28 10:57:29.19 Pp3LUsbs0.net
zip内の画像ファイルを展開せずに閲覧する場合に基本クラスとその他のライブラリで速度に違いはあるんでしょうか?

368:デフォルトの名無しさん (ワッチョイ 6b64-cWHx)
17/01/28 11:05:01.86 1xyPMcX/0.net
もっと詳しく、丁寧に質問して

369:デフォルトの名無しさん (ワッチョイ af4a-WsPK)
17/01/28 11:26:44.22 Pp3LUsbs0.net
zipファイルに格納された画像ファイル(jpgやpngやbmpやgif等)を展開せずにストリームで読み込む場合に
基本クラスであるZipFileクラスやZipArchiveクラスを使用した場合と、
#ziplibやDotNetZipやJ#のvjslib.dll等のライブラリを使用した場合では速度に有意な差が出るのでしょうか?

370:デフォルトの名無しさん (アウアウウー Sa7f-//rF)
17/01/28 12:01:12.08 XpAKmUmza.net
実装に差あるから、有意な差はでるだろうな
問題になるほどその差が大きいとは思えないが

371:デフォルトの名無しさん (ワッチョイ 7e5e-y5A3)
17/01/28 12:04:25.80 s1e/PAHl0.net
>>362
自分で比較してみればいいじゃん
展開でそんなに差は出ないと思うけど※個人の感想です、ってしかならない
なんで画像ファイル限定なのか知らんけど
pngやjpgだとzipには無圧縮で入っていることが多いからそのまま展開されずに読みだされるけど、その手の話かな?

372:デフォルトの名無しさん (ワッチョイ af4a-WsPK)
17/01/28 12:16:07.03 Pp3LUsbs0.net
>>363
大した差が無いようであれば基本クラスを使おうと思います
>>364
>pngやjpgだとzipには無圧縮で入っていることが多いからそのまま展開されずに読みだされるけど、その手の話かな?
そうです
基本クラスと#ziplibは試したのですが差が有るような無いような微妙な感じでした

373:デフォルトの名無しさん (ワッチョイ 9777-QkVH)
17/01/28 12:20:54.91 GpK52peC0.net
>>365
基本クラスって言い方は紛らわしい。継承関連かと勘違いする。
標準のクラスとか言ってくれ。

374:デフォルトの名無しさん (ワッチョイ 2b4a-H6k8)
17/01/28 15:14:39.72 XnHJw37P0.net
>>365
目的はなんなん?

375:デフォルトの名無しさん (ワッチョイ af4a-WsPK)
17/01/28 21:03:02.05 Pp3LUsbs0.net
>>367
漫画ビューワですが

376:デフォルトの名無しさん (ワッチョイ 0a4c-cWHx)
17/01/28 22:28:40.58 46h3M0fs0.net
その漫画ビューアが殆ど完成しているのであれば、基本クラスと他のライブラリのスペック差を測れば良いんじゃね?
そこまで大きく実装かわらんでしょ?

377:デフォルトの名無しさん (ワッチョイ 7e9d-AZYz)
17/01/29 03:26:17.34 EZgBqwJb0.net
WebClientでHeadersにIf-Modified-Sinceを設定してDownloadFileとかやると
以下の例外が起きてしまいます
'If-Modified-Since' ヘッダーは、適切なプロパティまたはメソッドを使用して変更する必要があります。
パラメーター名:name
ヘルプによるとWebClientはIf-Modified-Sinceを設定できないようなのですが
HttpWebRequestを使わずにWebClientだけでなんとかなりませんか?

378:デフォルトの名無しさん (ワッチョイ 6f7b-TK3D)
17/01/29 11:34:33.85 I0IcYz370.net
派生させてGetWebRequestオーバーライドしてそこで追加すればいいけど
まあ無駄だな
HttpClientに移行しよう

379:デフォルトの名無しさん (ワッチョイ 1f0d-VFvX)
17/01/29 11:40:15.08 6efjD1Fp0.net
HttpClient WebClient WebRequest HttpRequest の違いがわかりません

380:デフォルトの名無しさん (ワッチョイ bfd6-AZYz)
17/01/29 11:59:58.20 lTC0Slsj0.net
まーたお前か


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch