2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2013/09/07(土) 09:42:46.74
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問。
質問者自身なんだか意味がよく分からない質問。
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて、他スレ・他板へ行くことを勧められることがあります、ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

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

■前スレ
ふらっとVisual C#,C♯,C#(初心者用) Part105
http://toro.2ch.net/test/read.cgi/tech/1371948073/

■関連スレ
C#, C♯, C#相談室 Part80
http://toro.2ch.net/test/read.cgi/tech/1373037260/

■コード貼るなら↓使ってください
http://ideone.com/

2 :デフォルトの名無しさん:2013/09/07(土) 10:07:38.54
XNAが終了ということを知ったんですが
いまだとirrlichtが最強なのかなと思いました
このスレの先輩にもご意見をお伺いしたいのですがこのライブラリはどうでしょうか?

3 :デフォルトの名無しさん:2013/09/07(土) 11:21:57.65
>>2
ゲームなら今やUnity一強
.NETじゃないけど言語はC#だよ

4 :デフォルトの名無しさん:2013/09/07(土) 12:02:29.98
Unityっすか
実はUnity使ってみたかったんですが
ぼくのPCだと重すぎて
メモリ1GB オンボード Celeron1コア なんですが先輩方はどのくらいのスペックでUnityを快適に開発しているのでしょうか?

5 :デフォルトの名無しさん:2013/09/07(土) 12:05:12.73
Unityが重いならVSの最新版もまともに動かんよ

6 :デフォルトの名無しさん:2013/09/07(土) 12:15:11.02
>>4
さすがに買い換えろよ
それだとVS2003で精一杯なレベルだ
UnityもVS2012も今のでっかいソフトにしては決して重くない
最新のPCなら安いノートで十分快適に動くよ

7 :デフォルトの名無しさん:2013/09/07(土) 12:57:43.50
3〜4万も出せばPCを買える時代の終わりは近い

8 :デフォルトの名無しさん:2013/09/07(土) 13:04:12.64
これからは1万円台か

9 :デフォルトの名無しさん:2013/09/07(土) 14:58:48.38
TypeLoadException が出たのですが、どうやって直したらいいでしょうか?

アセンブリは、ちゃんとexeと同じ場所にあるので、アセンブリ(*.dll)は読み込めてると思います。
でも、たぶん型が読み込めてない(??)みたいなのですが……

教えてください





System.TypeLoadException はユーザー コードによってハンドルされませんでした。
HResult=-2146233054
Message=アセンブリ 'HogeHoge, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ab81addb3b46712a' から型 'HogeHoge.ClassA' を読み込めませんでした。
Source=MameMame.ClassB
TypeName=HogeHoge.ClassA

10 :デフォルトの名無しさん:2013/09/07(土) 15:12:40.58
try{>>9}
catch(Exception e){
int n= 0;   //ここにブレークポイント設定して e の中身見ろ。解決方法が載ってる
}

11 :デフォルトの名無しさん:2013/09/07(土) 15:12:55.55
メッセージ通りとしか言いようがない

12 :デフォルトの名無しさん:2013/09/07(土) 15:18:56.23
こういうのは全ソースとバイナリ貼ってくれないと解決しないパターン

13 :デフォルトの名無しさん:2013/09/07(土) 15:21:48.13
必要も無いのにGACに登録してて、
コンパイルのとき指定したアセンブリと
GACのアセンブリで同期が取れてないとか

14 :デフォルトの名無しさん:2013/09/07(土) 15:37:58.53
こうして欲しい

DLLプロジェクトを名前変えて作り直す
厳密名その他Hogehogeの設定に近づけつつ動かす
動かなくなる設定を突き止めたら調べて正しい設定にする
ダメならダメな理由を添えてここで質問

15 :デフォルトの名無しさん:2013/09/07(土) 15:48:46.42
全エレメントを列挙してscrollTopを取得したのに
0より大きい値がひとつも取れないってどうゆうこと?

16 :デフォルトの名無しさん:2013/09/07(土) 16:05:19.41
俺んとこじゃBody.ScrollTopでちゃんととれてるから
ただの環境依存じゃない?

17 :デフォルトの名無しさん:2013/09/07(土) 16:24:09.40
とれたよ。マジでありがとう。

18 :デフォルトの名無しさん:2013/09/07(土) 17:04:21.13
現在マルチスレッド処理を行うプログラムを書こうとしています。
Form1とForm2が存在し、初めはForm1のみが表示されています。
Form1のボタンを押すとForm2が表示され、Form2では重い処理を行っています。
この際Form1ではそのまま処理を続行したいのでForm2のclassを作ることから表示するまでをThreadクラスを使って別で処理させて、そのままForm2の描画および処理を行っています。
ですがボタンのイベント内で行っているので、イベントを抜けた途端にForm2も消滅してしまいます。これを解決する方法はないのでしょうか?

19 :デフォルトの名無しさん:2013/09/07(土) 17:10:36.69
Form2の表示はApplication.Runを使う必要があると思う

20 :デフォルトの名無しさん:2013/09/07(土) 17:12:39.76
スレッドはSTAね

21 :デフォルトの名無しさん:2013/09/07(土) 17:34:26.16
重い「処理」だけスレッドに追い出せばForm2自体はスレッド分ける必要ないだろ

22 :デフォルトの名無しさん:2013/09/07(土) 17:37:57.41
別にフォームごとサブスレッドにしてもいいと思う

23 :デフォルトの名無しさん:2013/09/07(土) 17:42:31.43
どう実装してるのか解らないけど、Form1のフィールドとしてForm2とスレッドの
変数を用意し、ボタンイベント内でそれぞれをインスタンス化すればいいんじゃ
ないの?
ボタンイベント内で変数を定義していないか?

24 :デフォルトの名無しさん:2013/09/07(土) 17:45:01.53
何言ってるのかさっぱり意味不明な質問によく回答できるよね。
ア○な質問者よりそっちに関心するわ

25 :デフォルトの名無しさん:2013/09/07(土) 17:46:08.07
>>21
そうだね
前にグレープシティのコントロールがマルチスレッドだと落ちるって情報を見かけたし、
UIは安易にマルチスレッドに頼らない方が良い

26 :デフォルトの名無しさん:2013/09/07(土) 17:48:49.15
でもフォームごと別のスレッドにしないと元スレッドのUIの処理の
影響受けちゃうからなぁ。あれは嫌だなぁ。

27 :デフォルトの名無しさん:2013/09/07(土) 17:52:23.40
>>24
暇なんだw
確かにForm2が全然イメージ出来ない
重い処理をForm2に押し付けたらすぐ応答なしになっちゃうし、何がしたいんだろうねw

28 :デフォルトの名無しさん:2013/09/07(土) 18:00:17.37
>>26
影響受けちゃうと言うか受けないように作るべきだけど面倒だよね

29 :デフォルトの名無しさん:2013/09/07(土) 18:01:58.30
C#で作ったアプリケーションを起動してみたら
アプリケーションを正しく起動できませんでした(0xc000007b)
ってエラーがでたんだけど解決方法わかります?

30 :デフォルトの名無しさん:2013/09/07(土) 18:07:57.16
64bit環境で32bitアプリを起動したとか?

31 :デフォルトの名無しさん:2013/09/07(土) 18:13:40.33
ワオキツネザルを無効にしてるんじゃなければ(そもそも無効にできるかどうか知らんけど)
それで問題が起こるとは思えませんが。

32 :デフォルトの名無しさん:2013/09/07(土) 18:19:52.68
自分でも何を質問してるのかわからない状態に陥っていますが…
再度整理すると、
現状ではボタンのクリックイベント内に別のFormクラスを宣言させて、Show()メソッドでForm2を表示しています。
Form2で行いたいことは、Form2内のボタンを押すとファイルを読み取りファイルを編集し、終わった後にForm2を自動的に閉じる、というものです。
ですがファイルサイズが大きいので動作が重くなってしまい、呼び出したForm1が止まってしまいます。

Application.Run()を使ったら
単一スレッド上で 2 回目のメッセージ ループを開始することは有効な操作ではありません。Form.ShowDialog を使用してください。
というエラーが表示されてしまいました。

33 :デフォルトの名無しさん:2013/09/07(土) 18:20:15.32
うんそうだね

34 :デフォルトの名無しさん:2013/09/07(土) 18:22:53.91
>>32
>>33>>31
Application.Runはバックグラウンド実行させるメソッドの中だよ

35 :デフォルトの名無しさん:2013/09/07(土) 18:29:43.10
>>32
>Form2内のボタンを押すとファイルを読み取り
この「ファイルを読み取る」のが遅いんだから、その部分だけを別スレッドにすればいい

36 :デフォルトの名無しさん:2013/09/07(土) 18:33:45.51
>>32
>>35の言うとおり、そうしないとForm2がフリーズする事になる。

37 :デフォルトの名無しさん:2013/09/07(土) 18:35:48.31
非同期も選択肢がだんだん増えて便利になった分、ゼロから覚える人は大変だよな。
まあデキる人ならどの道3日ぐらいでものにしちゃうのかもしれんが。

38 :デフォルトの名無しさん:2013/09/07(土) 18:41:32.66
ファイル読み取りを別スレッドにわけて、その処理の最後にfinishフラグのboolをtureにし、Timerで1秒間隔で読ませて、条件を満たしていたらFormを閉じるという無理やりな処理ですが、一応目標は達成できました…
もっといい処理はないものでしょうか…?

39 :デフォルトの名無しさん:2013/09/07(土) 18:45:58.76
invokeする

40 :デフォルトの名無しさん:2013/09/07(土) 18:50:58.93
>>38
これ最適化で無限ループ化するやつだよね

41 :デフォルトの名無しさん:2013/09/07(土) 19:14:26.20
>>38
スレッドにフォーム渡しておいて、読み込み終わったらform.Close()
↑こういうやり方すると誰かが文句いうが気にしない

42 :デフォルトの名無しさん:2013/09/07(土) 19:27:14.79
処理が終わったら閉じるとか、form2って単に処理中とか
プログレスバーを表示するだけのものなのか?
だったらそれ自体不要なんじゃないのかな

43 :デフォルトの名無しさん:2013/09/07(土) 19:48:35.69
その重い処理から定期的にメッセージループを回せよ。
どうせプログレスバーも更新する必要もあるんだし。

44 :デフォルトの名無しさん:2013/09/07(土) 19:50:42.87
>>41
invokeでだよね

>>42
ボタンを押したらって書いてあるからファイル選択するんじゃないか?

45 :デフォルトの名無しさん:2013/09/07(土) 20:19:23.96
NET4.5以降ならAsync/Awaitの出番
TaskやBackgroundWorkerでもよい

46 :デフォルトの名無しさん:2013/09/07(土) 20:21:08.49
ファイル読み込みなんだからボトルネックはHDD。
いちいちスレッド使うなよw 同期とかで余計に複雑になるわw

47 :デフォルトの名無しさん:2013/09/07(土) 20:24:22.80
Form2にはファイル選択とどの動作を行うかの選択のボタンやチェックボックスがついているため、Form2は必要になっています。
Invokeの使い方をまだよくわかっていなかったため使用を見送っていました。
メッセージループということは、Application.DoEvents()で良かったでしょうか。
Frameworkは4を想定していたので、それは使えませんね…

48 :デフォルトの名無しさん:2013/09/07(土) 20:27:23.21
>>46
じゃどうすんだよ?w

49 :デフォルトの名無しさん:2013/09/07(土) 20:32:33.19
>>48
ファイル読込ループにDoEvents()でも入れとけ。

50 :デフォルトの名無しさん:2013/09/07(土) 20:33:24.62
Windows7って標準で.Net4.0がインストールされていますか?

51 :デフォルトの名無しさん:2013/09/07(土) 20:35:45.44
>>47
invokeならこう
this.Invoke((MethodInvoker)delegate
{
this.Close();
});

DoEventsだとForm1の反応も悪くなる

52 :デフォルトの名無しさん:2013/09/07(土) 20:40:37.43
>>49
ファイル読み込みなんだからボトルネックはHDD。
だからスレッドなんて使わずDoEventsにしろ。

全く意味が分かりませんねぇ┐(´〜`)┌ ヤレヤレ

53 :デフォルトの名無しさん:2013/09/07(土) 20:45:59.60
>>52
コード書かない奴には理解できないよ。

54 :デフォルトの名無しさん:2013/09/07(土) 20:53:57.93
コード書いてるけど分からんわ

55 :デフォルトの名無しさん:2013/09/07(土) 20:55:57.20
ややこしそうだからスルーで

56 :デフォルトの名無しさん:2013/09/07(土) 20:56:57.88
同期考えないでスレッド生成しまくってるタイプか。
不定期にデッドロックしてもマイクロソフトだからですとか言いそう。

そういうプログラマを何人も見てきた。

57 :デフォルトの名無しさん:2013/09/07(土) 20:59:43.16
DoEventを素人にすすめる低能は死んでくれる?

58 :デフォルトの名無しさん:2013/09/07(土) 21:01:07.44
素人にマルチスレッド薦めるなw >>52 みたいなアホが大量生産されるw

59 :デフォルトの名無しさん:2013/09/07(土) 21:08:14.51
doeventsよりスレッドのほうがわかりやすいけど

60 :デフォルトの名無しさん:2013/09/07(土) 21:10:44.86
同期考えないからだろwww
過去にハイパースレッドとか出始めたときどんだけフリーズするアプリがあったんだよw

61 :デフォルトの名無しさん:2013/09/07(土) 21:11:39.37
どんだけあったの?w

62 :デフォルトの名無しさん:2013/09/07(土) 21:16:14.72
さすがに初心者にマルチスレッドはないな。
単独スレ立つぐらいなのに。CPUの知識は必須。

マルチスレッドプログラミング相談室 その9
http://toro.2ch.net/test/read.cgi/tech/1339691517/

63 :デフォルトの名無しさん:2013/09/07(土) 21:19:14.81
CPUの知識てw

64 :デフォルトの名無しさん:2013/09/07(土) 21:19:16.44
>>50
されてません
http://www.atmarkit.co.jp/ait/articles/1211/16/news093.html

65 :デフォルトの名無しさん:2013/09/07(土) 21:19:34.58
CPUの知識ワロタ。どうせおまえもCPUの知識なんてカスほどしかねーだろ

66 :デフォルトの名無しさん:2013/09/07(土) 21:22:16.45
原理から理解する必要があるって言ってた奴とかぶるものがあるなw

67 :デフォルトの名無しさん:2013/09/07(土) 21:25:45.64
原理主義者だな
テログラマーか?

68 :デフォルトの名無しさん:2013/09/07(土) 21:26:09.72
いくつ抽象化レイヤーをぶち抜いたらCPUの話になるんだよ

69 :デフォルトの名無しさん:2013/09/07(土) 21:27:07.83
>>63
落ち着け。初心者だと言ってるようなものだぞ。
さて、この勘違いした初心者をスルーすべきか相手にすべきかだな。


おれはパス。

70 :デフォルトの名無しさん:2013/09/07(土) 21:35:59.33
>>68
ほう。なぜこれが同期できてないかCPUレベルの話なしで初心者に説明してくれ。
これは典型的な初心者が書く馬鹿コードだから。既に稼動してるシステムで何度も見てきた。

Form1とかで
bool lock = false
int data = 0;

別スレッドで
if(!lock){
lock = true;
data処理
lock = false;
}

71 :デフォルトの名無しさん:2013/09/07(土) 21:36:16.73
確かにスレッド案はまだ停止用フラグの実装とかやる事あるけど、
今回は独立性高いし勉強用としては良いと思う。

72 :デフォルトの名無しさん:2013/09/07(土) 21:40:44.40
>>70
そもそも待機するコードになってないから

73 :デフォルトの名無しさん:2013/09/07(土) 21:41:26.13
釣りでなければ、どこにCPUレベルの話があるのかわからんが
もしかして、スレッドの話=CPUの話だとでも思ってるのか

74 :デフォルトの名無しさん:2013/09/07(土) 21:44:41.35
>>72
正しいコードプリーズ。

75 :デフォルトの名無しさん:2013/09/07(土) 21:46:23.41
volatileが必要とでも言いたいの?
そもそも説明を要求された理由が分からない

76 :デフォルトの名無しさん:2013/09/07(土) 21:49:17.98
このスレのあまりのレベルの低さに同情する。 >>70

77 :デフォルトの名無しさん:2013/09/07(土) 21:50:50.87
CPUの知識がどのレベルなのか分からないけど
レジスター、スタック、ヒープの構造と
各スレッドのコンテキストに割り当てられるリソースの
関係については知ってる必要があるし、それはCPUの
知識と言えるかもしれない

78 :デフォルトの名無しさん:2013/09/07(土) 21:51:46.24
ロックしたいなら>>70なソースは書くわけないし。どう見ても>>70=>>76だし。自演までレベル低くて同情するよ

79 :デフォルトの名無しさん:2013/09/07(土) 21:52:06.95
ロックってmonitor使うんじゃないの?騙された?

80 :デフォルトの名無しさん:2013/09/07(土) 21:52:25.85
>>78
正しいコードプリーズ。

81 :デフォルトの名無しさん:2013/09/07(土) 21:53:11.43
アセンブラのプログラマーの方ですか?
ここはC#スレですよ

82 :デフォルトの名無しさん:2013/09/07(土) 21:55:25.45
初心者ならそれこそBackgroundWorkerだろ
同期やロックはBackgroundWorkerイベントで
隠蔽されて安全に使える。

83 :デフォルトの名無しさん:2013/09/07(土) 21:56:42.28
精々lockやReaderWriterLockSlimで終わる話
なぜにCPUまで持ち出さないといけないのか

84 :デフォルトの名無しさん:2013/09/07(土) 21:58:27.67
初心者にはマルチスレッドは無理。

知ったかに説明しても逆ギレするだけ。

85 :デフォルトの名無しさん:2013/09/07(土) 22:01:57.62
>>80
ほらよ
ttp://codezine.jp/article/detail/139 の待機ハンドル

if(!lock)なんてやっても一瞬で素通り。while(1)かましたらずっと判定処理になるだろ
そんな糞コード書くなよ

86 :デフォルトの名無しさん:2013/09/07(土) 22:04:47.30
>>85
while(1)にしても同期できないよ、素人。

87 :デフォルトの名無しさん:2013/09/07(土) 22:07:32.39
while(true){
if(!lock){
lock = true;
data処理
lock = false;
}
}

これなら同期できると思ってる馬鹿がいる件について

88 :デフォルトの名無しさん:2013/09/07(土) 22:09:01.24
>>86
だからそんなの使わないって書いてるだろ。日本語ぐらい読めるようになれ

89 :デフォルトの名無しさん:2013/09/07(土) 22:09:51.13
>>70は会社員なのかなんなのかしらんが
既に稼動してるシステムでこのレベルのコードでマルチスレッド扱うプログラマがいるの?
ちょっといくらなんでも信じられん

90 :デフォルトの名無しさん:2013/09/07(土) 22:12:23.64
>>89
このスレで誰も答えを言えないのが答えさ。

91 :デフォルトの名無しさん:2013/09/07(土) 22:19:01.08
>>79,81,82,85に答えがあるのにそれを全部無視する>>70

92 :デフォルトの名無しさん:2013/09/07(土) 22:19:19.66
>>85は知ってるが>>70のコード断片から導くのは困難だわ
CPUのキャッシュとメモリの同期の話とかかと思いきや何だよ考えて損したw

93 :デフォルトの名無しさん:2013/09/07(土) 22:20:29.15
>>91
その中で一つでも同期できない理由を説明したものがあるのか。

ないじゃんwww

94 :デフォルトの名無しさん:2013/09/07(土) 22:23:16.30
素直にマルチスレッドなんにも分からないから教えてください、って言えよ

95 :デフォルトの名無しさん:2013/09/07(土) 22:23:18.54
>>93
>>72

96 :デフォルトの名無しさん:2013/09/07(土) 22:24:51.14
>>95
while(true){
if(!lock){
lock = true;
data処理
lock = false;
break;
}
}

これで同期できる?

97 :デフォルトの名無しさん:2013/09/07(土) 22:25:32.79
はい解散〜
解散解散〜

98 :デフォルトの名無しさん:2013/09/07(土) 22:26:16.59
>>96
それで同期出来るなんて誰も言ってないしw
もう引き下がってくれよw
めんどくせーよー

99 :デフォルトの名無しさん:2013/09/07(土) 22:27:25.68
>>96
できない>>85にあるだろ。こんなイメージ
while(true)
{
  manualEvent.WaitOne();
 //処理
}

100 :デフォルトの名無しさん:2013/09/07(土) 22:27:30.81
>>96
もちろんできない。
それ以前にその同期って言葉の使い方はちょとおかしい気が

101 :デフォルトの名無しさん:2013/09/07(土) 22:28:55.09
>>96
無理。動いたり動かなかったりデバッグ困難な糞コード。

102 :デフォルトの名無しさん:2013/09/07(土) 22:30:23.84
>>96 じゃ同期できない理由を説明しろ、糞ども。

103 :デフォルトの名無しさん:2013/09/07(土) 22:33:37.85
してもいいけどそれがどうCPUと関係するのかも説明してくれよ

104 :デフォルトの名無しさん:2013/09/07(土) 22:34:36.01
頼む。説明してくれ。論理的な間違いが見つけられないw

105 :デフォルトの名無しさん:2013/09/07(土) 22:37:30.81
>>104
ガチで言ってるの?
仮にlockが不揮発だとしても、「data処理」実行中の値は?

106 :デフォルトの名無しさん:2013/09/07(土) 22:39:14.39
>>105
処理中にlockが変更されても問題ない(処理なら問題ない)

107 :デフォルトの名無しさん:2013/09/07(土) 22:39:22.97
いやif(!lock){とlock = true;がアトミックじゃねえって話だろ

108 :デフォルトの名無しさん:2013/09/07(土) 22:40:43.42
こう言った方がいいか。
シングルコアを前提としても、3行目が実行される直前に別のスレッドに
実行権が移ったらどうなる?

109 :デフォルトの名無しさん:2013/09/07(土) 22:40:44.60
>>102
詳しそうだからスルーしといたんだけど、
lockが予約語だって知らないでしょw

110 :デフォルトの名無しさん:2013/09/07(土) 22:41:14.81
if(!lock)

lock = true
の間に、他のスレッドがlockの値を書き換える可能性がある
こんなチェックはなんのあてにもならない

111 :デフォルトの名無しさん:2013/09/07(土) 22:43:25.96
でCPUの知識はいつ生きるの?

112 :デフォルトの名無しさん:2013/09/07(土) 22:45:08.84
>>110
breakで飛ばす処理だから値書き換えられても問題ない

113 :デフォルトの名無しさん:2013/09/07(土) 22:45:28.43
すくなくともC#でのプログラムに、概念的な知識以上のCPUの知識なんていらん

114 :デフォルトの名無しさん:2013/09/07(土) 22:45:40.20
C#の1行とマシン語の1行が違うってこと?

115 :デフォルトの名無しさん:2013/09/07(土) 22:50:23.25
機械語1命令と実際のCPUの動作も違うな
OoO μOPとかややこしいのがあれこれ

C#でスレッドやるなら出来る限り高いレベルの同期命令を使うのが吉

116 :デフォルトの名無しさん:2013/09/07(土) 22:50:45.02
>>113
どんなコードを書こうとOSが提供する同期オブジェクトを使わないかぎり
同期できない理由を説明するにはCPUの話をするしかないんだけどね。
スレッド切り替えの粒度は機械語レベルだから。

117 :デフォルトの名無しさん:2013/09/07(土) 22:53:22.06
CLRのスレッドをOSが管理しているわけがないだろ
midoriでも使ってんのか

118 :デフォルトの名無しさん:2013/09/07(土) 22:54:25.98
結局はmonitor使っておけばいいんだよね?

119 :デフォルトの名無しさん:2013/09/07(土) 22:55:05.60
だからマルチスレッドは初心者には無理だと言ったんだ。

120 :デフォルトの名無しさん:2013/09/07(土) 22:55:36.45
C#に(というか.NETに)スレッド同期のための仕組みが用意されているんだが?
スレッドについても、実際のコンテキストがどうであろうが、それは.NETによって隠蔽されているわけで
OSよりさらに上位のレベルで抽象化されているわけだが

121 :デフォルトの名無しさん:2013/09/07(土) 22:56:41.80
よし。これからはファイル読み込みにmonitorとかいうの使うぞw
マルチスレッドなんて簡単、簡単w

122 :デフォルトの名無しさん:2013/09/07(土) 22:57:45.27
>>119
だな。>>70には無理

123 :デフォルトの名無しさん:2013/09/07(土) 22:58:10.50
>>118
そのレベルだとMonitorも危険
BackgroundWorkerだけでいいよ

124 :デフォルトの名無しさん:2013/09/07(土) 22:58:54.31
CPUの知識(笑)という言葉で想定されている知識の範囲もよく分からんけど、
どっちにしろそんなもの知らなきゃ非同期のコードが書けないわけでもないし、
知ってたからってより最適化されたコードが書けるってわけでも恐らくないよね。

それともパイプラインとかキャッシュとかHTとかマルチコアとか、CPUアーキテクチャーについて
深いレベルの知識があるのとないのとで何か違ってくることがあるのか?

125 :デフォルトの名無しさん:2013/09/07(土) 23:01:21.20
>>123
俺は一番軽い同期オブジェクトを使いたい

126 :デフォルトの名無しさん:2013/09/07(土) 23:01:57.24
マルチスレッドの話題は高度なので専用スレで、どうぞ。

127 :デフォルトの名無しさん:2013/09/07(土) 23:03:39.37
質問されてから同期オブジェクトの話が出てくるまで50レス近く消費するおまえらってw

初心者スレらしいなw

128 :デフォルトの名無しさん:2013/09/07(土) 23:03:46.27
C#がどういうCLRになって、それがどういうアセンブラになるかまで理解できて
その上で、動かしてるOSのプログラム管理に関して精通していて
実行しているCPUにたいしてパイプラインやキャッシュについての知識があれば
より最適化されたコードが書ける かもしれないな

129 :デフォルトの名無しさん:2013/09/07(土) 23:04:16.91
>>125
これで結果が 0, 0 になるケースがあるのを理解できたら使っていいよ
http://ideone.com/VPzJYN

130 :デフォルトの名無しさん:2013/09/07(土) 23:06:25.90
NANDやNORのTTLレベルの回路とか、ALUとかマイクロプログラミングとか、CPUのムダ知識は大学で習ったな

131 :デフォルトの名無しさん:2013/09/07(土) 23:06:48.56
>>129
もう使いまくってるから今頃使ってもいいよとか言われても困ります

132 :デフォルトの名無しさん:2013/09/07(土) 23:07:01.83
>>70
簡単じゃん。同期オブジェクト使ってないから。

133 :デフォルトの名無しさん:2013/09/07(土) 23:07:23.27
>>126
いくらでも気づきにくい落とし穴が作れるという意味では高度だけど、
非同期の処理って言ったって大半は単純なもので、そこまで複雑でも高度でも
ないと思うんだけどね。

基本的なアイデアはそう難しいものではないし、WPFみたいに覚えることが膨大に
あるわけでもないし。

134 :デフォルトの名無しさん:2013/09/07(土) 23:12:05.38
>>133
それはアプリによる。
どんどんForm開く仕様で共通データを処理しまくるとかは頭使う。
ロックするデータの範囲でパフォーマンスが全然変わってくるから。
下手すると簡単にデッドロック。しかも場所がどこだかログ追うだけでも地獄。

135 :デフォルトの名無しさん:2013/09/07(土) 23:21:58.53
スレッドの使い方は2種類あって、
1.重たい処理をバックグラウンドで処理してユーザーインターフェイスを硬直させない
2.処理をCPUコアに分散して処理効率を上げる
というのがあって、1は普通に使っていいと思うよ
これは構造的にもそんなにややこしくならないし、
ややこしくなるようなら設計がおかしい

136 :デフォルトの名無しさん:2013/09/07(土) 23:25:59.86
>>133
どう考えても「どんどんForm開く」というViewの仕様が
非同期処理の難易度を上げる(デッドロックを起こさないようコーディングすることを
困難にする)ことに貢献するとは思えないけどw

137 :デフォルトの名無しさん:2013/09/07(土) 23:27:20.81
>1.重たい処理をバックグラウンドで処理してユーザーインターフェイスを硬直させない

ややこしいだろ。UIが操作できるんだぞ。処理中にあれこれ動かされたらたまらん。
結果、コントロール全部、Enabled(false)

138 :デフォルトの名無しさん:2013/09/07(土) 23:28:18.26
>>137
再入の問題ならdoeventsでも同じだろ?

139 :デフォルトの名無しさん:2013/09/07(土) 23:30:11.62
WCF使って、重い処理を別プロセスに追いやるのが最強だろ
最後は別のコンピューターまで使えるし

140 :デフォルトの名無しさん:2013/09/07(土) 23:30:37.91
もういいから

141 :デフォルトの名無しさん:2013/09/07(土) 23:31:51.84
>>137
それはビューの状態管理の問題であって非同期処理に限った問題じゃないでしょ

142 :デフォルトの名無しさん:2013/09/07(土) 23:33:48.07
実例でいうと年金DBはデータがぐちゃぐちゃ。

143 :デフォルトの名無しさん:2013/09/07(土) 23:42:58.98
>>133
オラクルのバグに関していいたいが、契約に違反するので我慢することにしよう。

144 :デフォルトの名無しさん:2013/09/08(日) 02:59:40.47
必ずOSの同期を使わないいけないのは
スレッドスイッチングがC#コードやILレベルではなく、機械語レベルだからだな。
ロックは高級言語だけでは実装はできない。アセンブラ言語必須。

145 :デフォルトの名無しさん:2013/09/08(日) 03:19:21.61
「すべて」は機械語レベルで動いてるから機械語レベルじゃないとできない
だけどその機械語レベルの処理をC#なんかから呼び出すことができるからC#レベルからスイッチできるよ
もうなんか書いてて頭いたくなって来た

146 :デフォルトの名無しさん:2013/09/08(日) 03:34:12.11
C#は言語レベルでメモリモデルが規定されてる。
x86限定のメモリモデルでコーディングしてしてしまうと
移植性が無くなる。

147 :デフォルトの名無しさん:2013/09/08(日) 03:48:16.81
C#で実装できないという話と、C#で機能を提供しているとでは意味違う。
C言語でもロックの実装は書けない。

148 :デフォルトの名無しさん:2013/09/08(日) 03:55:47.44
>>147
違うようで同じだろ

149 :デフォルトの名無しさん:2013/09/08(日) 03:59:41.03
>>147
おまえは「CでもC#でもそれはそのままじゃ動かない。機械語での実装が必要」って言ってるようなもんなんだよ
何が言いたいのかまったく意味不明

150 :デフォルトの名無しさん:2013/09/08(日) 04:00:45.16
fenceもcasもILレベルであったような気がするな

C言語のような古い言語の場合はいまさら統一した
メモリモデルを導入するのは難しいけど
新しい言語ははじめからマルチスレッド前提だから、
メモリモデルはしっかり規定されているよ

151 :デフォルトの名無しさん:2013/09/08(日) 05:48:25.41
>>149
あんた実装の意味を勘違いしてるよ。

152 :デフォルトの名無しさん:2013/09/08(日) 10:05:07.86
なにこのグダグダ感は

153 :デフォルトの名無しさん:2013/09/08(日) 12:26:47.88
2chでクダ撒いてるような素人Lv2が何したり顔してんだって言う

154 :デフォルトの名無しさん:2013/09/08(日) 14:44:49.25
初心者にはマルチスレッドは無理ということで終了。
馬鹿に同期とか無理でしょ。

155 :デフォルトの名無しさん:2013/09/08(日) 14:47:33.54
馬鹿には無理
初心者でも想像力があって頭いいなら平気

156 :デフォルトの名無しさん:2013/09/08(日) 14:59:55.03
155 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん

157 :デフォルトの名無しさん:2013/09/08(日) 15:07:30.56
ところで、イマドキの初心者がスレッドを使い始めて同期の必要性を認識したとき、
>>70みたいに変数の値を使おうって思いつくもんなんだろうか?
プログラミング歴はそれなりだけどマルチスレッドや.Netはよく知らないという
ジジイ初心者ならわからんでもないけど。

158 :デフォルトの名無しさん:2013/09/08(日) 15:14:38.19
>>157
ラスト2行パターンだろ

159 :デフォルトの名無しさん:2013/09/08(日) 15:16:26.87
むしろジジィなら当たり前だが若者が知ってることはまずない。業務PGならなおさら。
基本情報受かってスマフォは知っていてもWin32がそのAPI提供してるなんてまず知らないし、
必ずそれを使わないといけないなんて知るよしもない。

というかおまえ働いたことないだろ?

160 :デフォルトの名無しさん:2013/09/08(日) 15:22:39.99
>>159
俺、読解力がないから何言ってるのかさっぱりわからね

>むしろジジィなら当たり前だが若者が知ってることはまずない。
爺なら当たり前に知ってる?知らない?何を知ってる?

>業務PGならなおさら。
なおさら知ってるのが当たり前?知らないのが当たり前?

161 :デフォルトの名無しさん:2013/09/08(日) 15:27:54.42
>>160
頑張れ。

162 :デフォルトの名無しさん:2013/09/08(日) 15:30:58.48
俺はスマフォの基本情報受かって働いてるぜってことだろjk

163 :デフォルトの名無しさん:2013/09/08(日) 15:31:49.77
>>160
馬鹿乙。

164 :デフォルトの名無しさん:2013/09/08(日) 15:32:26.41
オレ持ってないわw

165 :デフォルトの名無しさん:2013/09/08(日) 15:33:15.10
おれだって持ってない。持ってる奴はゆとり世代だろw

ゆとり世代はマルチスレッド禁止。 >>160

166 :デフォルトの名無しさん:2013/09/08(日) 15:36:37.82
.Netのようなフレームワークがそろっているところから始めた初心者だと、
スレッドの開始にフレームワークの機能を使っている以上、同期だって
まず.Netの中を探すのが自然だろう。
というか、>>70のコードで同期できる(実際はダメだが)ということすら
理解できないかもしれん。

167 :デフォルトの名無しさん:2013/09/08(日) 15:38:02.73
通訳してみた
(同期オブジェクトのことは)むしろジジィ(初心者)なら(知らないのが)当たり前だが若者が知ってることはまずない。
業務PGならなおさら(知ってるはずがない)。
基本情報受かってスマフォは知っていてもWin32がそのAPI提供してるなんてまず知らないし、
(=スマホ基本情報を持っているほど薄識(誤字)でもスマホに用意されてる同期用APIと同等のAPIがwin32 APIにあることなん
てまず知らないだろうし)
(マルチスレッドプログラミングに)必ずそれ(=同期オブジェクト)を使わないといけないなんて知るよしもない。

つまり初心者もプロも同期オブジェクトが必須なんて知識は持ってないという意味

168 :デフォルトの名無しさん:2013/09/08(日) 15:39:04.43
まず同期って言葉を説明できるんだろうか

169 :デフォルトの名無しさん:2013/09/08(日) 15:40:08.49
どうでもいい。

俺は非同期処理がそんなに高度な技術とは思ってないけど、
さすがに競合の問題やスレッドの同期機構も理解せずに使うのは論外。

論外の人間を前提にした>>157みたいな問題設定は何の意味もないよ

170 :デフォルトの名無しさん:2013/09/08(日) 15:41:27.23
>>167
国語も弱そう。国語力ない人はPGに向かないんだぞ。

171 :デフォルトの名無しさん:2013/09/08(日) 15:41:32.32
同期オブジェクトを探すかどうかの違い

172 :デフォルトの名無しさん:2013/09/08(日) 15:43:49.03
無職「俺は非同期処理がそんなに高度な技術とは思ってない」

173 :デフォルトの名無しさん:2013/09/08(日) 15:44:11.98
>>170
おまえは人に言いたいことを伝える能力が不足してる。PGに向かないぞ

174 :デフォルトの名無しさん:2013/09/08(日) 15:45:12.46
>>173
すまない。
まさかおまえがそこまで馬鹿だなんて思わなかったもので。 >>167

175 :デフォルトの名無しさん:2013/09/08(日) 15:45:55.06
>>159は老害

176 :デフォルトの名無しさん:2013/09/08(日) 15:47:21.27
初心者
ぐぐってマルチスレッド例を見てそれをコピペ改変する
 =ぐぐった先がきちんとしたソース書いてればきちんと動く

原理主義者
ぐぐってマルチスレッド例を見てそれを自分なりに改変する
 =理解できないオブジェクトは使いたくないから理解できる変数を使った>>70のようなソースになる

177 :デフォルトの名無しさん:2013/09/08(日) 15:49:46.26
>>70 WWW よく見るWW

178 :デフォルトの名無しさん:2013/09/08(日) 15:52:15.10
自己流でマルチスレッドを始めると、
いろいろ勘違いすることが多いかな
じっさい、x86でコア1つだと相当いい加減なコードでも動くから

179 :デフォルトの名無しさん:2013/09/08(日) 15:54:12.01
>>172
ベテランもそう思ってるよ
目線が違うだけで

180 :デフォルトの名無しさん:2013/09/08(日) 15:59:18.66
>俺は非同期処理がそんなに高度な技術とは思ってない

これはほんとない。
マルチスレッドが難しいのはバグが出た時再現性が不安定で、
動いたり動かなかったりすることを知らないんじゃないのか。明らかに経験不足。
デバッガで原因を追うことが困難なんだよ。
網羅テストも現実的に不可能でテストをパスしてしまう。

181 :デフォルトの名無しさん:2013/09/08(日) 16:05:23.19
>>180
一回りすると、逆にそういうトラブルにならないように考えてスレッド作るようになる

182 :デフォルトの名無しさん:2013/09/08(日) 16:08:54.86
これは世の中は怖い病のイトコと同じ症例です

183 :デフォルトの名無しさん:2013/09/08(日) 16:15:15.86
>>180
動かないなんてラッキーなほう。
この手の不具合は不定期にデータが上書きされるタイプだから、
どんどんデータが壊れていく。気づいたときにはマジ背筋が凍る。

184 :デフォルトの名無しさん:2013/09/08(日) 16:17:26.90
Win8で素人にも非同期を強要するようになって
MSってホント世間が見えてねえよな
半端に頭がいいとああいう馬鹿をやってしまうんだろう

185 :デフォルトの名無しさん:2013/09/08(日) 16:33:16.02
>>180
だから前にも書いたが、いくらでも発見困難な落とし穴を作り込むことが可能という意味では
高度ともいえるが、それは非同期処理のコードなら必ずそうなるということじゃない。

むしろ大半のケースではそんな落とし穴にはまることはない。
もちろん書いてる本人が馬鹿ならこの限りじゃないけど。

それは例えば、C#(CでもJavaでも何でもいいけど)で高度な処理を記述できるからといって
C#そのものが高度で習得が難しいことを意味しないのと同じこと。

186 :デフォルトの名無しさん:2013/09/08(日) 16:37:20.26
非同期処理なんてjQuery使ってるデザイナー崩れでも書ける

187 :デフォルトの名無しさん:2013/09/08(日) 16:37:46.16
>>185
バグが出た時の話をしてるのに何を言ってるんだ?

188 :デフォルトの名無しさん:2013/09/08(日) 16:38:35.86
>>185
おまえが馬鹿PGチームのテスト責任者のときこんな一言言える?

テスト責任者「俺は非同期処理がそんなに高度な技術とは思ってない」

189 :デフォルトの名無しさん:2013/09/08(日) 16:41:38.03
>>186
簡単に書けることと、デッドロックを防ぐ設計をすることとは天地ぐらいの差がある。

190 :デフォルトの名無しさん:2013/09/08(日) 16:41:50.05
>>187
俺はそんな話はしてない。>>169
馬鹿だろお前。

191 :デフォルトの名無しさん:2013/09/08(日) 16:43:05.23
衝撃告白。彼の開発にはテストは含まれませんw

192 :デフォルトの名無しさん:2013/09/08(日) 16:45:23.69
これは一人の馬鹿が騒いでるだけだね。ID表示あればNGして終わりなのに…

193 :デフォルトの名無しさん:2013/09/08(日) 16:46:40.38
マルチスレッドが簡単とかほんと馬鹿すぎる。

194 :デフォルトの名無しさん:2013/09/08(日) 17:02:43.78
>>129 がマルチスレッドの泥濘の例だな
かなりの上級者でもなぜ 0, 0が現れるかわからない

195 :デフォルトの名無しさん:2013/09/08(日) 17:12:00.11
見ただけで怖いコードなんだが。ゼロレイテンシムーブがある時代に。

答え教えて。

196 :デフォルトの名無しさん:2013/09/08(日) 17:12:04.27
>>129
このコードはマルチスレッドうんぬんの前に、ifの条件式や変数名その他の書き方がバグを生み出す元凶。
数行だからまだいいけど、これが長くなったらperlのコードなみに読めなくなる

197 :デフォルトの名無しさん:2013/09/08(日) 17:17:40.98
いやこんなマルチスレッドの問題点を指摘するためだけの数行のコードで
変数名を指摘されても…

このサンプルにおける良い名前付けの例を見せてほしい

198 :デフォルトの名無しさん:2013/09/08(日) 17:18:48.73
かなりの上級者どころか同期の説明で一番最初に出てくるコードじゃないの>>129
どの辺が上級者なのか80文字以内で説明してくれ

199 :デフォルトの名無しさん:2013/09/08(日) 17:20:49.72
馬鹿の相手はいいから答えいえ。CPUに依存するのか依存しないのか。

200 :デフォルトの名無しさん:2013/09/08(日) 17:23:43.33
.NETに限ればしないで終わり

201 :デフォルトの名無しさん:2013/09/08(日) 17:25:00.76
>>198
マルチスレッド
扱えるなら
上級者

ってことでねえの

202 :デフォルトの名無しさん:2013/09/08(日) 17:25:23.47
C#のvolatileは次のような特性があって(少々省略してるけど)、完全なメモリバリアではない。

 読み取りと書き込みは、volatile の読み取り前に移動することができない。
 読み取りと書き込みは、volatile の書き込み後に移動することができない。

なので、
CPU内での命令の並び替え(OoO)でs_y, s_xの読み取り操作が
書き込み操作の前に移動することがありえる。

s_x = 1; // W
s_ya = s_y; // W, R

これが、こうなる。

var temp = s_y; // R操作がW操作より先行することはルール違反ではない
s_x = 1; // W
s_ya = temp; // W

対策としては明示的にメモリバリアを使いましょうとなる。

s_x = 1; // W
Thread.MemoryBarrier(); // これで完全な分離が可能
s_ya = s_y; // W, R

203 :デフォルトの名無しさん:2013/09/08(日) 17:28:10.07
答えを言わないあたりが理由を知らないんだな。

204 :デフォルトの名無しさん:2013/09/08(日) 17:30:20.51
>>197
http://pastebin.com/ZhsDNMku

205 :デフォルトの名無しさん:2013/09/08(日) 17:30:29.90
お前が無視してるだけで何べんも答え貰ってんだろw
オツムより先に目玉の治療してこい

206 :デフォルトの名無しさん:2013/09/08(日) 17:32:14.86
沸点の低い奴だ。

207 :デフォルトの名無しさん:2013/09/08(日) 17:33:29.42
指摘は否定しないんだな
つまり分かっててやってるんだなクズ

208 :デフォルトの名無しさん:2013/09/08(日) 17:33:53.73
>>198
プチ上級者 (C言語で) volatileはメモリバリアではないので不思議に思わない。
上級者 C#ではvolatileがメモリバリアの意味があると知っているのでわからなくなる。

209 :デフォルトの名無しさん:2013/09/08(日) 17:33:55.61
>>202
はいはい、CPUの話ですね。

210 :デフォルトの名無しさん:2013/09/08(日) 17:36:02.83
>>209
C#のメモリモデルの話だよ

211 :デフォルトの名無しさん:2013/09/08(日) 17:36:05.04
1,0 であったり、0,1であったりする可能性だけ分れば十分です。

212 :デフォルトの名無しさん:2013/09/08(日) 17:36:55.08
>>210
CPU内での命令の並び替えどうのこうの言ったのはおまえじゃないか。

213 :デフォルトの名無しさん:2013/09/08(日) 17:39:08.13
>>211
それに気づいて対策すれば0,0も出ないしな。

214 :デフォルトの名無しさん:2013/09/08(日) 17:40:42.11
>>210
はいはい、ILアセンブラの話ですね。

215 :デフォルトの名無しさん:2013/09/08(日) 17:46:36.06
cscの話だろボケ

216 :デフォルトの名無しさん:2013/09/08(日) 17:49:27.78
>>204
頑張ってるのを評価されるのは、義務教育までだぞ。

217 :デフォルトの名無しさん:2013/09/08(日) 17:49:40.80
だからマルチスレッドは簡単だと言ったんだ。

218 :デフォルトの名無しさん:2013/09/08(日) 17:52:03.75
簡単に煽れるってこと?

219 :デフォルトの名無しさん:2013/09/08(日) 17:54:40.88
それは真理だな

220 :デフォルトの名無しさん:2013/09/08(日) 17:56:23.66
結局、CPUの話か。知ったか初心者玉砕。

221 :デフォルトの名無しさん:2013/09/08(日) 17:58:24.70
>>129
何だこれ。
嘘つけそんなケースありえないだろ

222 :デフォルトの名無しさん:2013/09/08(日) 17:58:58.53
>70=>217=>220がうざいな

223 :デフォルトの名無しさん:2013/09/08(日) 18:01:08.72
>>221
蒸し返すなよ周回遅れ
そのまま世間に埋もれて死ね

224 :デフォルトの名無しさん:2013/09/08(日) 18:01:18.99
>>70は偉そうな割に>>87>>96と二回もコード修正してるのがかわいいじゃん

225 :デフォルトの名無しさん:2013/09/08(日) 18:03:33.63
結局、>>70>>129 も誰も正解答えられなかったカスどもが偉そうに。

226 :デフォルトの名無しさん:2013/09/08(日) 18:05:36.15
>CPU内での命令の並び替え(OoO)でs_y, s_xの読み取り操作が
>書き込み操作の前に移動することがありえる。

CPUつってんだろ。何度も言わすな。メモリモデルはCPUの話なんだよ。

227 :デフォルトの名無しさん:2013/09/08(日) 18:07:06.74
両方ともまだ答え出てないことになったのかよwww

228 :デフォルトの名無しさん:2013/09/08(日) 18:08:09.14
>>70 は答える価値も無いだろ?

229 :デフォルトの名無しさん:2013/09/08(日) 18:08:26.82
白雉もいいとこだなw
医者も大変だろう

230 :デフォルトの名無しさん:2013/09/08(日) 18:08:27.80
CPU君は昨日からしつこいねw
CPUは関係ないよ。

メモリーモデルなんていうとなんかご大層に聞こえるけど、
要するにプログラマが期待する結果を裏切らない範囲でコンパイラが最適化を行う
ルールのことを言ってるだけ。

231 :デフォルトの名無しさん:2013/09/08(日) 18:09:57.68
黙殺される>>72

232 :デフォルトの名無しさん:2013/09/08(日) 18:10:53.58
OOOEプロセッサとコンパイラのリオーダーがごっちゃになってんだろ
これを知ったかと言わずしてなんというって話

233 :デフォルトの名無しさん:2013/09/08(日) 18:13:06.99
>>230
メモリモデルやコンパイラの最適化はCPU依存の話でしかないよ。
依存しないそもそもメモリモデルも最適化ルールも規定化する必要がない。

実際初心者プログラマの期待を裏切る例を出してるし何を言いたいんだろうか。

234 :デフォルトの名無しさん:2013/09/08(日) 18:14:18.49
>>231
デッドロックしないためにスルーするコードなんて普通だから。

235 :デフォルトの名無しさん:2013/09/08(日) 18:15:24.97
現存するCPUアーキテクチャに合わせた仮想マシン作ってるから依存してるように見えるんじゃない?

236 :デフォルトの名無しさん:2013/09/08(日) 18:16:18.18
>>234
基地外にデッドロックされてますわ

237 :デフォルトの名無しさん:2013/09/08(日) 18:16:30.97
読みだされない変数が消えたりするのもCPU依存ですか?

238 :デフォルトの名無しさん:2013/09/08(日) 18:16:57.02
>>233
コンパイラと言ったのは不適切だったかも知れないが、
CPUに依存する最適化コードを吐き出すのはJITの仕事。

メモリモデルは、プログラマがそんな環境ごとのCPUの違いを意識しないで済むための決め事。

239 :デフォルトの名無しさん:2013/09/08(日) 18:16:58.19
>答えが出てないことになった

最終的には問題が出てないことになるであろうw

240 :デフォルトの名無しさん:2013/09/08(日) 18:21:47.80
>>238
箱庭である以上、仮想CPUを規定してんだろ。
このメモリモデルはその仮想CPUのロード、ストアの仕様でしかない。

241 :デフォルトの名無しさん:2013/09/08(日) 18:23:05.63
x86とは何だったのかね
ケケケ

242 :デフォルトの名無しさん:2013/09/08(日) 18:24:40.92
x86でも全然違うんだけどな。
自己書き換えできたりできなかったり。

243 :デフォルトの名無しさん:2013/09/08(日) 18:26:16.60
>>240
ルーピーって話がループするからルーピーって言うんだねw

244 :デフォルトの名無しさん:2013/09/08(日) 18:28:38.28
>>236
おまえがレスしてるの基地外だろw

245 :デフォルトの名無しさん:2013/09/08(日) 18:30:39.39
メモリモデルってCPUの話。マイクロソフトがそういってる。

C# メモリ モデルの理論と実践
http://msdn.microsoft.com/ja-jp/magazine/jj863136.aspx

246 :デフォルトの名無しさん:2013/09/08(日) 18:33:42.48
実はおれもそう思ってたんだ。

247 :デフォルトの名無しさん:2013/09/08(日) 18:34:10.17
>>245
「モデル」の意味分かる?

248 :デフォルトの名無しさん:2013/09/08(日) 18:34:13.90
>ここまでは、ECMA C# 仕様で定義された C# メモリ モデルについて説明し、メモリ モデルを定義するスレッド コミュニケーションの最も重要なパターンについて示してきました。

249 :デフォルトの名無しさん:2013/09/08(日) 18:39:09.19
>コンパイラとハードウェアは、プログラムのメモリ命令をわずかに変化させることがあり、
>その方法によってはシングルスレッドの動作に影響しなくても、
>マルチスレッドの動作に影響することがあるため、
>これがマルチスレッド プログラミングを複雑にする要因の 1 つになることがあります。

250 :デフォルトの名無しさん:2013/09/08(日) 18:42:10.49
>>197
まるで自分が書いたかのような口ぶり
http://blogs.msdn.com/b/hiroyuk/archive/2010/05/26/10015338.aspx

251 :デフォルトの名無しさん:2013/09/08(日) 18:44:46.21
>if (!(s_xa == 1 || s_ya == 1))
だからこうしてたのか。糞ワロタwww

252 :デフォルトの名無しさん:2013/09/08(日) 18:46:53.71
>ポーリング ループ: ポーリング ループは、一般に推奨されませんが、
>実際には (いくぶん残念なことに) 頻繁に使用されるパターンです。

老害はMS開発者だったんだね。

253 :デフォルトの名無しさん:2013/09/08(日) 18:50:06.16
>>72
>実際には (いくぶん残念なことに) 頻繁に使用されるパターンです。

MSにこう言われるとは随分と恥ずかしいな、初心者wwww

254 :デフォルトの名無しさん:2013/09/08(日) 18:54:27.68
知ったか初心者

「俺は非同期処理がそんなに高度な技術とは思ってない」


MSのParallel LINQ、タスク並列ライブラリ開発者

「コンパイラとハードウェアは、プログラムのメモリ命令をわずかに変化させることがあり、
その方法によってはシングルスレッドの動作に影響しなくても、マルチスレッドの動作に影響することがあるため、
これがマルチスレッド プログラミングを複雑にする要因の 1 つになることがあります。」

255 :デフォルトの名無しさん:2013/09/08(日) 19:00:48.76
まあ非同期と並列の区別がつかない奴には無理だわな

256 :デフォルトの名無しさん:2013/09/08(日) 19:03:35.10
>>254
C#はその非同期を射程に含めるわけだが、お前さんの理屈だと
じゃあC#は高度な技術なのかと。

馬鹿だろお前。

257 :デフォルトの名無しさん:2013/09/08(日) 19:05:09.17
>抽象型の C# メモリ モデルに従えば "バグ" を含んでいる多くのプログラムでも、
>特定のバージョンの .NET Framework を実行する特定のハードウェアでは正常に実行されます。

>とりわけ、x86 と x64 のプロセッサは特定の限られた場合にしか命令の並べ替えを行わず、
>同様に CLR の just-in-time (JIT) コンパイラは許可されている変換の多くを実行しません。


要約するとMSはPGは馬鹿、Intelはビビりと言っている。

258 :デフォルトの名無しさん:2013/09/08(日) 19:07:31.95
>>256
まじで馬鹿だな

259 :デフォルトの名無しさん:2013/09/08(日) 19:08:42.05
>>256
双方の意見をコピペしただけで他意はありません。

260 :デフォルトの名無しさん:2013/09/08(日) 19:10:09.05
MS技術者の圧勝。

261 :デフォルトの名無しさん:2013/09/08(日) 19:14:26.59
Cスレでのポインタ議論()と通じるものがあるな
マルチスレッド少しかじった奴がギャーギャー自論を喚き散らし、初心者がそれを煽り、知ってる奴がたまにヒント投下しつつ傍観する

262 :デフォルトの名無しさん:2013/09/08(日) 19:14:55.34
煽りが一番楽しいよ
おすすめ

263 :デフォルトの名無しさん:2013/09/08(日) 19:20:23.83
>>262
論破されすぎて頭がおかしくなってんだな。MSのソースひとつで反論でぎずwww

264 :デフォルトの名無しさん:2013/09/08(日) 19:21:02.53
>>262
つくづく思うけど、馬鹿と下衆が地上で最強だなw
なりたいとは思わんが

265 :デフォルトの名無しさん:2013/09/08(日) 19:23:38.19
>>264
だなw
完全論破されてもそのことに気付かないから負けることがない

266 :デフォルトの名無しさん:2013/09/08(日) 19:25:05.88
ここはMS技術者の溜り場なの? どうりでレベルが低いわけだ。

マルチスレッドが複雑とかw

267 :デフォルトの名無しさん:2013/09/08(日) 19:25:58.03
>>266
本日は釣り堀終了ですよ

268 :デフォルトの名無しさん:2013/09/08(日) 19:26:18.94
はいはい、MS技術者がプロセッサ、プロセッサと言ってんだからCPUの話なんでしょ。

269 :デフォルトの名無しさん:2013/09/08(日) 19:29:55.85
俺たちにとってMSは神だからな。批判すらことすら許されない。

270 :デフォルトの名無しさん:2013/09/08(日) 21:20:28.90
ttp://www.winsystem.jp/software_color.htmlの拡大表示機能って見出しのとこの画像をみてください。
マウスが置いてあるところからリアルタイムに一定範囲を拡大してツールチップみたいなので表示されているんですが

座標で指定した範囲をこうやって拡大してリアルタイムにフォームに表示させたいのですが
どういうキーワードでググればいいでしょうか?

271 :デフォルトの名無しさん:2013/09/08(日) 21:21:44.05
民主党は、パナソニックやシャープ、ソニーを潰す気だった?
http://www.youtube.com/watch?v=iG_oaqU0pEM

帰化朝鮮人ばかりが政治家を目指す国?日本
https://www.youtube.com/watch?v=JVhHeMqNPHY

272 :デフォルトの名無しさん:2013/09/08(日) 21:25:25.86
ネトウヨ王に、俺はなる!まで読んだ。

273 :デフォルトの名無しさん:2013/09/08(日) 21:30:28.09
>>270
まず分からないところを具体的にピックアップしてみる

274 :デフォルトの名無しさん:2013/09/08(日) 21:33:13.75
わざわざ潰さんでも既に潰れそうだ

275 :デフォルトの名無しさん:2013/09/08(日) 21:33:16.05
マルチスレッドを使うならこれぐらいは知っていてほしいね。
CPU関連、x86アセンブラとかも説明に出てくるけど、Itanium、Armについも解説してくれてる。
さすがMSのドキュメントは面白いね。


C# メモリ モデルの理論と実践
http://msdn.microsoft.com/ja-jp/magazine/jj863136.aspx

C# メモリ モデルの理論と実践 (第 2 部)
http://msdn.microsoft.com/ja-jp/magazine/jj883956.aspx

276 :デフォルトの名無しさん:2013/09/08(日) 21:40:58.75
>>270
スクリーンキャプチャ c#
マウスカーソル位置取得 c#
Bitmap トリミング c#

277 :デフォルトの名無しさん:2013/09/08(日) 22:29:25.20
初心者から少しレベルアップした人には、この本がおすすめ。

C#による マルチコアのための非同期/並列処理プログラミング

278 :デフォルトの名無しさん:2013/09/08(日) 22:32:50.88
マルチスレッドとマルチコアは多くの場合あんまり関係ないのに誤解を招くタイトルだなあ
コアをフルに回すためにマルチスレッド使うなんて相当極端な状況だぞ

279 :デフォルトの名無しさん:2013/09/08(日) 22:35:10.94
俺もそう思う。本っていうメディアだし、情弱ホイホイだろうな

280 :デフォルトの名無しさん:2013/09/08(日) 22:37:34.03
>>278-279
さすがに情強様は頭悪そうだな

281 :デフォルトの名無しさん:2013/09/08(日) 22:51:07.11
馬鹿だなぁ。並列化して速度アップするための本なんだよ、きっと。
シングルコアだと意味ないだろ?

282 :デフォルトの名無しさん:2013/09/08(日) 22:54:15.48
CPUぶん回すための並列処理ってあんまり複雑な排他制御とか必要としない単純な処理が多いしな
ややこしいケースは大抵あんまりCPU使わない

283 :デフォルトの名無しさん:2013/09/08(日) 22:56:38.43
そりゃ同期ってコストが高いもの。
将棋の思考とかある程度の塊で投げれる処理でないと無理。

284 :デフォルトの名無しさん:2013/09/08(日) 22:57:40.69
また基地外が釣り針投下してきたな

285 :デフォルトの名無しさん:2013/09/08(日) 22:58:59.02
またMS様にケンカを売る知ったか馬鹿。

286 :デフォルトの名無しさん:2013/09/08(日) 22:59:16.71
>>281
シングルコアでも意味あるよ
マルチコアで速くなるのはCPUを100%使ってる場合だけな
そして重い処理って意外とCPU使ってないことが多い

287 :デフォルトの名無しさん:2013/09/08(日) 23:03:06.36
>>286
まじか。
シングルコアでCPU使用率が20%程度の処理をマルチスレッドしたらどれぐらい速くなるんだ?

288 :デフォルトの名無しさん:2013/09/08(日) 23:07:46.29
>>286
>マルチコアで速くなるのはCPUを100%使ってる場合だけな
ダウト

289 :デフォルトの名無しさん:2013/09/08(日) 23:20:02.32
逃亡早すぎw

290 :デフォルトの名無しさん:2013/09/08(日) 23:20:26.14
>>287
IOしてる間にCPUの処理を済ませられるから最大で実行時間20%offじゃない?

291 :デフォルトの名無しさん:2013/09/08(日) 23:22:26.08
IOがボトルネックなのになぜ速くなるのか。

292 :デフォルトの名無しさん:2013/09/08(日) 23:25:39.47
多数のIO待ちで遅いなら、直列の待ち時間を並列にすることで、トータルの待ち時間を短くできるだろ
1時間の行列の買い物を、一人で10回やると10時間かかるけど
10人でやれば合計1時間ちょっとで終了する

293 :デフォルトの名無しさん:2013/09/08(日) 23:27:19.88
ボタンを押して次の作業ができるようになるまでの時間だったら、別スレッドにすればほぼゼロ時間にまで速くなる

294 :デフォルトの名無しさん:2013/09/08(日) 23:35:07.21
>>292
IOにも非同期APIあるんだから使えよ。

295 :デフォルトの名無しさん:2013/09/08(日) 23:48:27.47
オンラインゲームでMMOとかFPSとかあるじゃないですか
あれって接続ユーザーの数だけ並列で動いてるから
リアルタイムにユーザーが動けるのでしょうか?

296 :デフォルトの名無しさん:2013/09/08(日) 23:51:54.86
>>292
ディスクが沢山つながってたり通信相手のサーバーが遅かったりする場合の話だろそれ

297 :デフォルトの名無しさん:2013/09/09(月) 11:17:38.60
chartControlを3.5で使いたいんだけどツールボックスに無いから、
一度プロパティを4.0にして貼り付けて、その後3.5にして使っても問題って無いですか?
Windows7に.NET Framework4.0入れたく無いので・・・。

298 :デフォルトの名無しさん:2013/09/09(月) 12:23:27.16
MSのフォーラムで聞いて来いよ

299 :デフォルトの名無しさん:2013/09/09(月) 14:01:10.39
ソーシャルゲーム用のツールが欲しいんです。自動で巡回、目的のカードが指定した価格以下になったら購入。といったようなツールです。
このようなものは簡単に作れるのでしょうか?
無知なので、出来ればサンプルや作り方などを教えてもらえれば……

300 :デフォルトの名無しさん:2013/09/09(月) 14:20:24.04
http://toro.2ch.net/test/read.cgi/tech/1377511459/327

301 :デフォルトの名無しさん:2013/09/09(月) 14:20:54.40
進撃のバハムート
進撃のバハムート
進撃のバハムート
進撃のバハムート
進撃のバハムート
進撃のバハムート
進撃のバハムート
進撃のバハムート
進撃のバハムート
進撃のバハムート
進撃のバハムート

302 :デフォルトの名無しさん:2013/09/09(月) 14:27:43.91
どうしたんでしょうか^^;

303 :デフォルトの名無しさん:2013/09/09(月) 14:31:49.91
>>300
ワロタ。爆釣じゃん

304 :デフォルトの名無しさん:2013/09/09(月) 15:21:33.88
おっぱいが出るかと思ったのに

305 :デフォルトの名無しさん:2013/09/09(月) 18:29:16.60
http://www.excel-excel.com/letsmake5/make5.html
自動巡回ツール自体はこういうところからインストールすればいいかと思います。
しかし、これに独自の機能を追加していく場合ってどこをどういじればいいのでしょうか?

ようするに他人のソース?を模倣して、自分で機能を追加してみよう^^と行った感じです。
どこからいじればいいのかも分かりません。

306 :デフォルトの名無しさん:2013/09/09(月) 18:42:50.29
>>305
ttps://www.google.co.jp/search?num=100&safe=off&q=進撃のバハムート+マクロ
ttp://severalwords.blog.fc2.com/
ttp://netgameghost.blog.fc2.com/blog-entry-4.html
ttp://singekibahamucheat.blog.fc2.com/

307 :デフォルトの名無しさん:2013/09/09(月) 20:43:18.13
VBAだろスレ違い
つーかゲームばっかしてないで勉強しろクソガキ

308 :デフォルトの名無しさん:2013/09/09(月) 21:33:58.79
ttp://gihyo.jp/book/2013/978-4-7741-5828-0

この本のステマかと思ってた

309 :デフォルトの名無しさん:2013/09/09(月) 21:40:00.35
>Windows 8以降などでは非同期処理が必須
最近ミングスレで同じ言い回し見た気がする。そうかもな

310 :デフォルトの名無しさん:2013/09/10(火) 00:48:46.87
今日VSExpress2012インスコして思ったのがc#書いててブロックが
getter()
{
}
こういう形になるんですけど自分的には
getter() {

}
こういうふうにしたいんですけどどこから設定したらいいでしょうか?
もうひとつデザイン側をダブルクリックした際に生成されるイベントメソッドを削除したら自動でデザイン側のコードも削除するような設定もどこから設定したらよいですか?
お願い致します

311 :デフォルトの名無しさん:2013/09/10(火) 01:03:26.20
>>310
オプションぐらい見ろよ
後者はたぶんない。やりたいならプラグイン作れ

312 :デフォルトの名無しさん:2013/09/10(火) 01:20:03.15
>>311
すんませんw前者のは解決しました

313 :デフォルトの名無しさん:2013/09/10(火) 03:07:11.75
いい難読化ツールないです?
・無料
・VS2012でビルドと同時に難読化実行することも可能

314 :デフォルトの名無しさん:2013/09/10(火) 03:08:17.81
また悪いツール作る人か。

315 :デフォルトの名無しさん:2013/09/10(火) 03:17:14.03
また>>70

316 :デフォルトの名無しさん:2013/09/10(火) 03:21:43.25
超ロングパスとかどんだけくやしかったんだよwww

317 :デフォルトの名無しさん:2013/09/10(火) 03:30:48.62
基地外湧いたようだな

318 :デフォルトの名無しさん:2013/09/10(火) 03:38:17.21
知ったかして、MSのソースで撃沈キチガイはほんと消えてくれ。

319 :デフォルトの名無しさん:2013/09/10(火) 03:44:42.93
これだけコテンパンに叩かれたのに
またマルチスレッドは簡単君が出てきたか。

320 :デフォルトの名無しさん:2013/09/10(火) 04:15:22.17
>>275
ためになるなぁ
今までテキトウにvolatileつけてたはw

321 :デフォルトの名無しさん:2013/09/10(火) 16:27:27.25
C# メモリ モデルの理論と実践
http://msdn.microsoft.com/ja-jp/magazine/jj863136.aspx

C# メモリ モデルの理論と実践 (第 2 部)
http://msdn.microsoft.com/ja-jp/magazine/jj883956.aspx


適当に書くとCPUによってPGの希望通り動いたり動かなかったり。
Armのことなんて完全に考えてなかったわ。

とにかくvolatile 使えってことだな。

322 :デフォルトの名無しさん:2013/09/10(火) 17:48:54.45
つけりゃいいんだろ?あん?みたいな
フィールドが全部volatileなコードがそのうち出てくるなw

323 :デフォルトの名無しさん:2013/09/10(火) 18:03:53.00
class Hoge{}
volatile hoge = new Hoge();
エラーが取れません。どうしたらいいでしょ?ってなるな

324 :デフォルトの名無しさん:2013/09/10(火) 18:24:11.92
volatile Hoge hoge = new Hoge();

325 :デフォルトの名無しさん:2013/09/10(火) 18:41:19.56
Javaもやったことある先輩に質問です
C#とJavaどっちが難しいですか?

326 :デフォルトの名無しさん:2013/09/10(火) 18:43:55.06
どっちも同じ

327 :デフォルトの名無しさん:2013/09/10(火) 18:50:25.17
Javaかな

328 :デフォルトの名無しさん:2013/09/10(火) 19:01:16.73
>>321
第二部のReadIntroってクラスがエラーになるのはなぜ?

>_obj フィールドの読み取りが、このフィールドの 2 回の読み取りに分割されているため、ToString メソッドが null ターゲットに対して呼び出されるようになることがあります。

2回に分割される事のどこに問題があるの?

329 :デフォルトの名無しさん:2013/09/10(火) 19:32:34.51
>null ターゲットに対して呼び出されるようになることがあります。

ぬるぽ

330 :デフォルトの名無しさん:2013/09/10(火) 19:42:52.12
>>298
ここはなんのスレなんだよw

331 :デフォルトの名無しさん:2013/09/10(火) 20:05:20.51
>バージョン 4 までの .NET Framework ではこのケースが適切に処理されないことを指摘しておかなければなりません。
>実際、_A フィールドを volatile とマークしても読み取り順序の入れ替えは避けられません。
>この問題は、.NET Framework バージョン 4.5 で解決されました。

もうカオスだね。

332 :デフォルトの名無しさん:2013/09/10(火) 20:21:15.18
仕事でC#使ってる人ってArgumentNullExceptionのことをあなるって言うの?

333 :デフォルトの名無しさん:2013/09/10(火) 20:23:39.67
うん君みたいな幼稚なのはね

334 :デフォルトの名無しさん:2013/09/10(火) 20:31:32.92
>>331
だからMSは、4.0をなかったことにしたいのか。黒歴史なわけだ。

335 :デフォルトの名無しさん:2013/09/10(火) 20:52:41.28
そんな大げさな。
大半のプログラマはそんなメモリモデルなんて知らないし、従ってそんな規約に
厳密に従うことなんか期待してない。

期待するのはvolatle付けた変数が実際にvolatileであることだけ。

336 :デフォルトの名無しさん:2013/09/10(火) 20:55:49.20
4.5を入れたら4.0は削除される。
互換性を重視するMSがこんな強引な抹消をするなんて。まさしく黒歴史。

337 :デフォルトの名無しさん:2013/09/10(火) 20:56:18.73
どうせx86/x64だと再現しない不具合だろ
だれがItaniumでC#アプリ開発するんだよ
世界で2人くらいだろ

338 :デフォルトの名無しさん:2013/09/10(火) 20:59:57.43
じゃあOutlookとかも黒歴史か

339 :デフォルトの名無しさん:2013/09/10(火) 21:00:06.48
ItaniumはIntelの黒歴史なので、MSは気を使って.net 4.5から Itanium はなかったことになりました。

340 :デフォルトの名無しさん:2013/09/10(火) 21:01:02.89
Vistaの時、3.0温存したまま3.5インストールできたっけ?w

341 :デフォルトの名無しさん:2013/09/10(火) 21:02:38.04
Vistaはバルマーの黒歴史。

342 :デフォルトの名無しさん:2013/09/10(火) 21:05:59.20
安心して使いたいなら重い同期オブジェクトを使いなさいってこった。

343 :デフォルトの名無しさん:2013/09/10(火) 21:06:46.61
>>336
え?

344 :デフォルトの名無しさん:2013/09/10(火) 21:15:58.62
なんでCPUの話になってんだよ。

345 :デフォルトの名無しさん:2013/09/10(火) 21:19:05.50
バックグラウンドでファイルを読むっつーvolatileもクソもない要件のはずなのになんか沸いてきたから

346 :デフォルトの名無しさん:2013/09/10(火) 21:20:41.81
そうそう。
マルチスレッドなんて簡単。CPUの話を持ち出すMS技術者はアホ。volatileなんか使ったことないし。

347 :デフォルトの名無しさん:2013/09/10(火) 21:21:39.03
また>>70かよ

348 :デフォルトの名無しさん:2013/09/10(火) 21:22:51.36
>>345
コレwww
CPUの話がしたかったんだろうが導入部が雑過ぎて荒れた

349 :デフォルトの名無しさん:2013/09/10(火) 21:25:21.48
>>70 が正しいことは >>321 が証明した。

おまえらはみんなゴミカスPG。

350 :デフォルトの名無しさん:2013/09/10(火) 21:26:12.39
CPUの話は関係ないと知ったかしたら、
MSがCPUの話ばかりで説明してました。

-------------終了-----------------

351 :デフォルトの名無しさん:2013/09/10(火) 21:28:22.80
デスクトップアプリはUIスレッドがあるからまともな設計ならロック取得が並列処理になったりはしません

352 :デフォルトの名無しさん:2013/09/10(火) 21:28:34.41
>>349
基地外なおまえ(>>70)はコロコロ主張変えすぎなんだよ
>とにかくvolatile 使えってことだな
>安心して使いたいなら重い同期オブジェクトを使いなさいってこった
>volatileなんか使ったことないし

353 :デフォルトの名無しさん:2013/09/10(火) 21:31:21.24
終了つってんだろ。>>321 で終わり。
この説明で理解できない奴はマルチスレッドを使うな。

void PrintObj() {
4. Object obj = _obj;
5. if (obj != null) {
6. Console.WriteLine(obj.ToString());
7. // May throw a NullReferenceException
8. }

この程度が分らないなら初心者なんだよ。圧倒的な知識不足。

354 :デフォルトの名無しさん:2013/09/10(火) 21:34:27.81
コピペしただけじゃん

355 :デフォルトの名無しさん:2013/09/10(火) 21:34:50.87
>>352
おまえとっくに論破されたんだから引っ込めよ。

356 :デフォルトの名無しさん:2013/09/10(火) 21:35:12.54
このスレにいる人はほぼ理解してるよ?
理解してないのは>>353だけだよ

357 :デフォルトの名無しさん:2013/09/10(火) 21:36:34.17
昨日、マルチスレッドは簡単、CPUの知識はいらないと言って暴れてた馬鹿起きたの?

358 :デフォルトの名無しさん:2013/09/10(火) 21:38:37.32
>>353見たら何も分かってないのがもろバレw

359 :デフォルトの名無しさん:2013/09/10(火) 21:40:00.29
>>353は前提削ったせいで何の意味もない戯言になってる

360 :デフォルトの名無しさん:2013/09/10(火) 21:40:04.07
x86アセンブラすら書いたことない馬鹿の知ったかはもういいよ。

361 :デフォルトの名無しさん:2013/09/10(火) 21:40:42.63
>>353 == >>360

362 :デフォルトの名無しさん:2013/09/10(火) 21:41:15.55
結論はこれ。終了な。

C# メモリ モデルの理論と実践
http://msdn.microsoft.com/ja-jp/magazine/jj863136.aspx

C# メモリ モデルの理論と実践 (第 2 部)
http://msdn.microsoft.com/ja-jp/magazine/jj883956.aspx

363 :デフォルトの名無しさん:2013/09/10(火) 21:42:15.70
CPUに依存するし、.netのバージョンにも依存する。

はい、終わり。

364 :デフォルトの名無しさん:2013/09/10(火) 21:43:01.38
MASMでも使ってたのか?そんな長くやっていまだにマルチスレッド理解できないって悲しいな

365 :デフォルトの名無しさん:2013/09/10(火) 21:45:44.93
まだやってんだ
省みられないって大変だね

366 :デフォルトの名無しさん:2013/09/10(火) 21:46:09.71
>>364
このドキュメント書いた人、Parallel LINQ、タスク並列ライブラリの開発者なんだが。

367 :デフォルトの名無しさん:2013/09/10(火) 21:47:46.63
開発者だとなんだい?
権威を傘に着たければチューリング賞受賞者でも連れてきな
オナニーの片手間くらいに聞いてやるよ

368 :デフォルトの名無しさん:2013/09/10(火) 21:48:37.33
ここまでの経緯。

知ったか「マルチスレッドは簡単。CPUの話は関係ない」

MSタスク並列ライブラリ開発者「マルチスレッドは複雑。CPUに依存する」

知ったか「ムッキーッッッ」 荒らし中。

369 :デフォルトの名無しさん:2013/09/10(火) 21:49:24.53
MSDNマガジンをドキュメントって呼ぶ人初めて見た

370 :デフォルトの名無しさん:2013/09/10(火) 21:51:14.47
ごく最近誰だかがVistaは失敗って言ってましたし、
偉い人の発言なんてその程度のことですよ。

371 :デフォルトの名無しさん:2013/09/10(火) 21:53:35.31
たかだか>>70を馬鹿にされたくらいで72時間もキレてるのかよ
さすがだわ

372 :デフォルトの名無しさん:2013/09/10(火) 21:56:02.52
>>368
さすがそれは違う。
っていうかお前も馬鹿だろ

373 :デフォルトの名無しさん:2013/09/10(火) 21:56:09.25
>>371
逆。>>368

374 :デフォルトの名無しさん:2013/09/10(火) 21:56:55.38
よしんば正しかろうが欠陥人間だよね

375 :デフォルトの名無しさん:2013/09/10(火) 21:58:27.45
知ったか君、いいかげんにしてくれないかwww
マルチスレッドはCPU依存なんだよwww


ソースはこれ。

C# メモリ モデルの理論と実践 (第 2 部)
http://msdn.microsoft.com/ja-jp/magazine/jj883956.aspx

376 :デフォルトの名無しさん:2013/09/10(火) 22:00:14.42
>>375
ちゃんと読めよ。
その記事はメモリモデルの実装方法がCPU依存だと言ってるんであって、
マルチスレッドがCPU依存なんてどこにも書いてない。

話のレイヤーが違う

377 :デフォルトの名無しさん:2013/09/10(火) 22:00:33.84
第一部の方には「ECMA仕様で定義されている」って書いてあるからもう貼らないのか

378 :デフォルトの名無しさん:2013/09/10(火) 22:01:34.78
やぶ蛇でクソ笑えるw

379 :デフォルトの名無しさん:2013/09/10(火) 22:04:06.35
>>376
知ったか君よ、キミ往生際が悪いよ。

>バージョン 4 までの .NET Framework ではこのケースが適切に処理されないことを指摘しておかなければなりません。

380 :デフォルトの名無しさん:2013/09/10(火) 22:07:48.74
不具合を知らないと知ったかなんだ
日本語は難しいね

381 :デフォルトの名無しさん:2013/09/10(火) 22:09:27.62
傍観してて思うんだが、
レイヤーが違う相手なんだろ?通じるわけがないのになぜ説得を続ける。
心を込めれば異星人に話が伝わるとでも思ってるのか。

382 :デフォルトの名無しさん:2013/09/10(火) 22:09:37.70
>>379
馬鹿だろお前

383 :デフォルトの名無しさん:2013/09/10(火) 22:10:55.86
頭に不具合があるからな。会話が成立しない

>>70「x86アセンブラすら書いたことない馬鹿の知ったかはもういいよ。」
「MASMでも使ってたのか?そんな長くやっていまだにマルチスレッド理解できないって悲しいな」
>>70「このドキュメント書いた人、Parallel LINQ、タスク並列ライブラリの開発者なんだが。」

384 :デフォルトの名無しさん:2013/09/10(火) 22:11:01.67
>>380
もちろん、不具合があると書いてる資料見て、不具合はなかったと言うのは知ったかじゃないよw

ただの馬鹿か嘘つきかな。

385 :デフォルトの名無しさん:2013/09/10(火) 22:13:02.45
>>381
全く。
高級言語レイヤみて簡単だという奴にマルチスレッドを理解させようとすることが間違いだよな。

386 :デフォルトの名無しさん:2013/09/10(火) 22:14:40.36
また自演始めたぞ

387 :381:2013/09/10(火) 22:15:46.08
うわ、話しかけられた。腐るわ。

388 :デフォルトの名無しさん:2013/09/10(火) 22:17:12.51
おれが悪かった。マルチスレッドは簡単。.netのバージョンにもCPUにも依存しない。

だからこれ以上、荒らさないでくれ。

389 :デフォルトの名無しさん:2013/09/10(火) 22:17:53.10
知ったか君、自演はもういいから。

390 :デフォルトの名無しさん:2013/09/10(火) 22:19:36.08
まだまだ、これからだ

391 :デフォルトの名無しさん:2013/09/10(火) 22:23:09.98
>>381 == >>385 == >>387 == >>388 == >>389

392 :デフォルトの名無しさん:2013/09/10(火) 22:23:33.61
メモリモデルがCPUに依存することがどんだけ悔しかったんだよ?w

393 :381:2013/09/10(火) 22:23:57.99
さすがに俺は違うw

394 :デフォルトの名無しさん:2013/09/10(火) 22:24:38.08
>>393
バレバレの自演いつまで続けんだ? 荒らしてんじゃねーよ、チンカス。

395 :デフォルトの名無しさん:2013/09/10(火) 22:26:13.07
>>70

396 :デフォルトの名無しさん:2013/09/10(火) 22:35:50.95
>>70
当たり前だな。
実行単位はC#言語の単位じゃなく、CPUの命令単位だからな。
if(!lock)の後のブロックはアトミックと保証されていない。なのでifパスした直後、
ブロックに入ってlock=trueの前にスレッドの切り替えが起こる可能性がある。

初心者がよくするミスだな。

397 :デフォルトの名無しさん:2013/09/10(火) 22:41:50.93
連続投稿ですか??に引っかかって出てこれないとか可愛いなww

398 :デフォルトの名無しさん:2013/09/10(火) 22:43:49.24
>>396
void PrintObj() {
4. Object obj = _obj;
5. if (obj != null) {
6. Console.WriteLine(obj.ToString());
7. // May throw a NullReferenceException
8. }

これは?

399 :デフォルトの名無しさん:2013/09/10(火) 22:44:24.89
>>396
lock=trueの前にスレッドの切り替えが起こったらどんなときにどんな問題が起こりえるの?

400 :デフォルトの名無しさん:2013/09/10(火) 22:46:00.95
>>70のゴミコードから意図を読み取れるエスパーが登場

401 :デフォルトの名無しさん:2013/09/10(火) 22:48:51.65
>>396
C#でもILでも別命令なんですが

402 :デフォルトの名無しさん:2013/09/10(火) 22:49:08.10
急遽登場(寒)

403 :デフォルトの名無しさん:2013/09/10(火) 22:50:06.37
この程度でエスパーなら毎年新人PGの謎コードの問題点を指摘できないよ。

404 :デフォルトの名無しさん:2013/09/10(火) 22:51:08.68
また知ったか君が釣られるwww

405 :デフォルトの名無しさん:2013/09/10(火) 22:57:12.98
>>400
それ>>70本人だからw

406 :デフォルトの名無しさん:2013/09/10(火) 22:57:40.93
知った君やっと釣られたことに気づくwww

407 :デフォルトの名無しさん:2013/09/10(火) 22:59:06.12
レベル低すぎて笑えるwww 知ったか君ガンバレwww

408 :デフォルトの名無しさん:2013/09/10(火) 22:59:32.87
>>399答えてよ
初心者だから分からない

409 :デフォルトの名無しさん:2013/09/10(火) 23:02:15.23
知ったか君まだ釣られたことに気づいていないwwww

410 :デフォルトの名無しさん:2013/09/10(火) 23:04:07.61
void PrintObj() {
4. Object obj = _obj;
5. if (obj != null) {
6. Console.WriteLine(obj.ToString());
7. // May throw a NullReferenceException
8. }

どうみてもMSのバグです。MS技術者レベル低すぎ。

411 :デフォルトの名無しさん:2013/09/10(火) 23:05:48.79
なにかターボかかってきたようだけど、誰か興奮させるようなこと言ったの?

412 :デフォルトの名無しさん:2013/09/10(火) 23:07:55.34
答えれないから誤魔化しながら今必死に検索中だろw

413 :デフォルトの名無しさん:2013/09/10(火) 23:09:54.53
>>410
4.0のときC#に並列化ライブラリ入れて、見直したら大量にそういうのが後から見つかったんだろうね。
.net4.0 以前でマルチスレッド使うのは避けたほうがいいね。

414 :デフォルトの名無しさん:2013/09/10(火) 23:14:58.40
>>413
マジでマルチスレッド理解できてないんだなw

415 :デフォルトの名無しさん:2013/09/10(火) 23:19:05.37
>>413
4.5はXPを排除するためかと思ったら違ったんだな。

416 :デフォルトの名無しさん:2013/09/11(水) 00:20:24.12
WPFのバインディングって1対多もできるの?

417 :デフォルトの名無しさん:2013/09/11(水) 00:25:40.85
ターゲットは普通に複数にできる
ソースの場合はMultiBinding

418 :デフォルトの名無しさん:2013/09/11(水) 00:27:13.66
ありがと、しらべてみる!

419 :デフォルトの名無しさん:2013/09/11(水) 00:36:39.45
ItemsSourceの話のような気もする

420 :デフォルトの名無しさん:2013/09/11(水) 00:40:43.47
よく考えたら、1対多ってよりも、バインディングの切り替えって感じかなぁ。
複数のTabItem上のプロパティ値を、ソースにしたいんだけど、
(タブの切り替えに対応するように)
ちょっと複雑になりそうですね。
結局、Selected Changeイベントに書いたほうが見通しはよさそうですね。

421 :デフォルトの名無しさん:2013/09/11(水) 07:22:35.70
マウスポインタの下にあるコントロールを取得する
または
あるコントロール上にマウスポインタがある
のどちらかを取得する方法があれば教えてください。

422 :デフォルトの名無しさん:2013/09/11(水) 08:19:14.44
[DllImport( "user32.dll" )]
static extern IntPtr WindowFromPoint( System.Drawing.Point Point );

...

IntPtr hwnd = WindowFromPoint( Control.MousePosition );
Control ctrl = Control.FromHandle( hwnd );
if( ctrl != null ){
...
}

423 :デフォルトの名無しさん:2013/09/11(水) 09:39:52.87
天才か

424 :デフォルトの名無しさん:2013/09/11(水) 09:41:29.58
C#を基礎から学びたいんですがこの1冊読めっていうのおしえて

425 :デフォルトの名無しさん:2013/09/11(水) 11:36:54.18
本を読んでも学べませんよ

426 :デフォルトの名無しさん:2013/09/11(水) 11:42:49.84
ネットで検索する方法学べる本よめ

427 :デフォルトの名無しさん:2013/09/11(水) 12:49:04.35
AがBを保有していてBのメンバー変数に変更があったかどうか知りたいのですが、
BにIsModifiedプロパティを作るよりもっとエレガントな方法を教えて下さい

428 :デフォルトの名無しさん:2013/09/11(水) 12:53:23.47
class A a = new A();
a.MenberChanged += (sender, e) =>
{
 MessageBox.Show("変更ありました");
};

429 :427:2013/09/11(水) 12:59:00.51
BにMemberChangedイベントを作ってAが登録ですよね?
Bはメンバーが変更される度にイベントを呼び出す
イベント登録とか難しいことは無しでお願いします

430 :デフォルトの名無しさん:2013/09/11(水) 13:04:07.02
class B
{
 public event EventHandler MemberChanged;
 public int MyProperty
 {
  get{...}
  set{...
   if( this.MemberChanged != null )
   {
    this.MemberChanged( this, EventArgs.Empty );
   }
  }
 }
}

class A
{
 B b;
 public A()
 {
  b = new B();
  b.MemberChanged += new EventHandler( b_MemberChanged );
 }

 private void b_MemberChanged( object sender, EventArgs e )
 {
  // Bのメンバー変数に変更があった
 }
}

431 :デフォルトの名無しさん:2013/09/11(水) 14:37:38.71
>>429
面倒な奴だなIsModifiedプロパティ作っとけよ

432 :デフォルトの名無しさん:2013/09/11(水) 14:44:25.82
IsModified
確認したらfalseに戻しといて下さい
ダッサw

433 :デフォルトの名無しさん:2013/09/11(水) 14:46:06.98
>>432
Saveまでの間フラグ立てといて、saveしたらリセット。よくある方法だろjk

434 :デフォルトの名無しさん:2013/09/11(水) 15:53:25.97
>>424
そりゃ、くめい先生の名著、猫でもわかるシリーズは、はずせないねえ
読んでわかるかどうかは、知らんよ
この本の利点は、なんせ10時間もあれば読めるので、
すぐ元を取れるってことさ

435 :デフォルトの名無しさん:2013/09/11(水) 16:15:28.31
>>426
これ
今の時代ぐぐれないんじゃプログラミングできない。そんな低レベルな質問聞くよりもググったほうがはやいよ

436 :427:2013/09/11(水) 17:17:32.33
>>432-433
それはBが複数のAから参照されてたら破綻しませんか?
A1 --> B
A2 --> B
結局うまい方法がない気がします

437 :デフォルトの名無しさん:2013/09/11(水) 17:23:49.35
>>436
その為にlockがあるんだが

438 :デフォルトの名無しさん:2013/09/11(水) 17:26:09.88
lockとCPUについて

439 :デフォルトの名無しさん:2013/09/11(水) 17:34:10.28
>>436
なぜ破綻するの?マルチスレッドなら破綻する作りにできるけど、シングルスレッドで普通に組めば破綻しないでしょ

440 :デフォルトの名無しさん:2013/09/11(水) 17:52:01.55
>>436
イベントでの実装例上げてくれてるじゃん。
これが複雑でうまくないと言われると何を期待してんのか分からない。
IsModifiedも複数回の変更が無ければ破綻しないだろ。

441 :デフォルトの名無しさん:2013/09/11(水) 18:00:39.15
そもそもメンバ変数の変更を把握しようという発想がおかしいと思うんだが
普通プロパティにするだろ、それだったら

442 :デフォルトの名無しさん:2013/09/11(水) 18:02:35.19
逆に考えるんだ。そのメンバ変数を自分で保持しておけばいいんだよ。

443 :デフォルトの名無しさん:2013/09/11(水) 18:02:35.71
>>436
そういう要件は先に出さないと。

たしかにA1がBの持つフラグをおろしちゃうとA2はその変化を知ることができない。
登録オブジェクトごとにフラグを用意する機構を考えることもできる(作ったことある)けど
イベントの方が圧倒的に簡単だわな

444 :デフォルトの名無しさん:2013/09/11(水) 18:03:42.49
つまりstatic public bool IsModified〜の出番だな

445 :デフォルトの名無しさん:2013/09/11(水) 18:08:43.25
いやいや、そのばあい、メンバ変数の変更とはどういう事か正確に定義しないとな
A1が0読み取り→A2が1セット→A2が0セット→A1が0読み取り
さて、A1にとってこのメンバ変数は変更されたの?

446 :デフォルトの名無しさん:2013/09/11(水) 18:27:48.30
C#の勉強中なのですが、

htmlのコードに記述されているものを呼び出して、
そのwebページ上へ命令を出すことはできますか?

馬鹿みたいな質問ですいません

C#でjavascriptの
funcionとかを呼び出したいのです

447 :デフォルトの名無しさん:2013/09/11(水) 18:29:21.02
まーたwebbrowserか

448 :デフォルトの名無しさん:2013/09/11(水) 18:30:04.44
具体的に何がやりたいわけ?

449 :デフォルトの名無しさん:2013/09/11(水) 19:03:52.64
まーたゲームの自動化か

450 :デフォルトの名無しさん:2013/09/11(水) 19:06:19.40
また悪いツールか。

451 :デフォルトの名無しさん:2013/09/11(水) 19:20:17.44
これはワルですね

452 :デフォルトの名無しさん:2013/09/11(水) 20:10:29.64
>>446
c# WebBrowserで検索。できるけど面倒だから仕組みが分かるまで大変。がんばれ

453 :デフォルトの名無しさん:2013/09/11(水) 20:13:02.16
ゲームでチートしようと考える時点で勉強する根性はないだろうな。

454 :デフォルトの名無しさん:2013/09/11(水) 20:28:21.21
チートじゃなくて、サーバー管理ツールを作りたいのです(自分のサーバー)

友人に聞いたらhtml〜なんたらと言っていたのですが、
僕の勘違いかもしれません。

ゲームの管理ツールなので、ステータス等を変更できるようにしたいのです。

チートとか、不正をするとかは全くないです。

他にやり方など有りましたら 初心者の僕に教えていただければと思います。

455 :デフォルトの名無しさん:2013/09/11(水) 20:29:09.52
怠惰はプログラマの美徳だろう

456 :デフォルトの名無しさん:2013/09/11(水) 20:58:06.49
自分のサーバならどうやればいいのか自分でわかるだろ

457 :デフォルトの名無しさん:2013/09/11(水) 21:35:15.34
自分でサーバ立てて、サーバ側で行われる処理とクライアント側で行われる処理の区別もつかんのか

458 :デフォルトの名無しさん:2013/09/11(水) 22:57:36.27
VB6とC#、API使わないコード勝負でどっちがどれだけ速いですか?

459 :デフォルトの名無しさん:2013/09/11(水) 22:58:48.15
C#

460 :デフォルトの名無しさん:2013/09/11(水) 23:06:03.38
>>459
こっちではVB6のコンパイル済アンマネージドコードの方がC# JITコンパイル後コードより平均63%高速と出た

461 :デフォルトの名無しさん:2013/09/11(水) 23:09:39.01
どうせVB6にできることのみでの比較だろ
そんなの意味ないんだよなぁ

462 :デフォルトの名無しさん:2013/09/11(水) 23:13:45.25
VB6にできることをフルにやったらゴミしか出来ないだろ
文法的な意味で

463 :デフォルトの名無しさん:2013/09/11(水) 23:16:26.48
VB6に出来る事の方が多そうな口ぶりだな

464 :デフォルトの名無しさん:2013/09/11(水) 23:16:58.06
起動時のオーバーヘッドを入れるか入れないかで違ってくるな
古い遅いPCだとVB6が速い

465 :デフォルトの名無しさん:2013/09/11(水) 23:17:27.19
ベンチマークは証拠示さないとMSに訴えられるよ

466 :デフォルトの名無しさん:2013/09/11(水) 23:18:46.73
MSに訴えられるぞって言うと脅迫になるよ

467 :デフォルトの名無しさん:2013/09/11(水) 23:19:55.62
VB6のVariant型の実装はC#では逆立ちしても無理?
多態性とかあってもブラックホール型には勝てない?

468 :デフォルトの名無しさん:2013/09/11(水) 23:21:46.95
a = b = c

この結果がTrueとかFalseになる言語をどう理解しろと?

469 :デフォルトの名無しさん:2013/09/11(水) 23:23:29.04
マルチスレッドも使えないVB6と比較なんて意味ないよなぁ

470 :デフォルトの名無しさん:2013/09/11(水) 23:23:30.81
速度のこと聞かれてるのにお前らは・・・

471 :デフォルトの名無しさん:2013/09/11(水) 23:25:26.53
VB6はマルチスレッドは使えるけど使い物にならない

472 :デフォルトの名無しさん:2013/09/11(水) 23:25:31.44
ただ足し算や引き算が速くても意味ないんだよなぁ

473 :デフォルトの名無しさん:2013/09/11(水) 23:26:06.68
速度で勝てないから話題を逸らす

474 :デフォルトの名無しさん:2013/09/11(水) 23:26:29.46
>>467
objectがあるじゃないか
dynamic型として扱えばVariantと同じように使えるしVariantより速いぞ

475 :デフォルトの名無しさん:2013/09/11(水) 23:27:26.09
足し算や引き算はVB6が速いってことでいいけど
それって意味あるのかな?
そんなに計算速くしたいならCでやったほうがいいし

476 :デフォルトの名無しさん:2013/09/11(水) 23:27:27.50
速度がどうこう抜かすなら証拠を示せ
話はそれから

477 :デフォルトの名無しさん:2013/09/11(水) 23:28:09.66
変数を宣言しただけでメモリにオブジェクトを展開するような言語仕様では勝ち目がない
勝てるとすればクラスを実装継承できることくらいか?

478 :デフォルトの名無しさん:2013/09/11(水) 23:29:59.58
VB6にはListすらないしなぁ
C#はWPFを使えばグラッフィクもすごいし。

479 :デフォルトの名無しさん:2013/09/11(水) 23:31:18.50
JavaやC#には事実上スカラー型が存在しないからな
VB6の場合は整数型 iを宣言すれば
コンパイル時の最適化でアセンブラのコードは
CPUのアキュムレータか汎用レジスタに割り当てられる

480 :デフォルトの名無しさん:2013/09/11(水) 23:32:28.25
VB6はイテレーターが基本的に自作できないからダメ

481 :デフォルトの名無しさん:2013/09/11(水) 23:32:50.48
でも速度が速いからって今更VB6使う?使わないよね?
Cで書くよね?
今頃VB6を持ち出す意味がわからないんだけどねぇ。

482 :デフォルトの名無しさん:2013/09/11(水) 23:33:34.78
>>478
http://support.microsoft.com/kb/166394/ja

483 :デフォルトの名無しさん:2013/09/11(水) 23:34:41.94
>>482
遅そうだねw
C#のListはかなり高速だからなぁ。

484 :デフォルトの名無しさん:2013/09/11(水) 23:35:22.18
実装するぐらいならMS製のライブラリ使うだろ普通

485 :デフォルトの名無しさん:2013/09/11(水) 23:36:12.80
速度の評価はコンパイルして実効コードにみてから
ソース見て遅そうとか速そうとかではまるで幼児レベル

486 :デフォルトの名無しさん:2013/09/11(水) 23:37:16.44
まあでもVB6は使わないし比較する意味がないわw

487 :デフォルトの名無しさん:2013/09/11(水) 23:37:47.20
VB6のソースコードを見て実行に要するCPUのクロック数を言い当てられたらある意味天才だろうに

488 :デフォルトの名無しさん:2013/09/11(水) 23:37:50.37
>>479
そんなもんJavaにもC#にもあるわ
C#ではintは構造体ということになってるが、実際にはILレベルのプリミティブ型で
インスタンスメソッド呼び出しは第一引数に参照を渡すなどして偽装してるだけだ

489 :デフォルトの名無しさん:2013/09/11(水) 23:38:44.08
C#ではintは構造体???

490 :デフォルトの名無しさん:2013/09/11(水) 23:39:50.21
>>482
VB6を長年やった経験からこのコードは遅いのはわかる

491 :デフォルトの名無しさん:2013/09/11(水) 23:40:08.16
構造体にしてもプリミティブ型にしてもスカラー型ではないだろうに?

492 :デフォルトの名無しさん:2013/09/11(水) 23:41:17.19
俺はVB2.0からやってるからなぁ。

493 :デフォルトの名無しさん:2013/09/11(水) 23:56:18.81
>>491
どうやら君の言うスカラー型という言葉は一般的な意味とは違うようだから
君の思うスカラー型とやらをまず定義してくれ

494 :デフォルトの名無しさん:2013/09/12(木) 00:02:00.55
何の話だよ

495 :デフォルトの名無しさん:2013/09/12(木) 00:05:36.56
C#出始めの頃は、formの速度が明らかに違っていた
パソコンも進化して当時のようにformの操作にストレスも感じなくなったから
速度を気にすることもないよな

496 :デフォルトの名無しさん:2013/09/12(木) 11:04:37.83
>>489
正確には".NET FrameworkのInt32は構造体"ですね

497 :デフォルトの名無しさん:2013/09/12(木) 11:58:45.99
JavaはintにtoString()が無く、Integerにしか無いのを知って最初驚いた

498 :デフォルトの名無しさん:2013/09/12(木) 13:19:13.24
C#ではvalue typeを示すキーワードにstructを使ってしまったので混乱するが
Cの構造体とは別物と考えたほうがいい

499 :デフォルトの名無しさん:2013/09/12(木) 14:16:43.89
C#でQt使ってる方いらっしゃいます?何使ってますか

500 :デフォルトの名無しさん:2013/09/12(木) 14:49:30.39
>>491
VMとかCLRの上で動いてるんだから
perlのスカラーと同じようなもんだろ

501 :デフォルトの名無しさん:2013/09/12(木) 17:47:06.03
C#でウィンドウを移動できないようにする方法はありますか?

502 :デフォルトの名無しさん:2013/09/12(木) 17:55:59.41
ggrks
C# ウインドウが動かないようにする

503 :デフォルトの名無しさん:2013/09/12(木) 18:52:05.82
C#のネィティブコンパイラを誰か作ってくれないかな。.netもうイヤ!

504 :デフォルトの名無しさん:2013/09/12(木) 18:54:55.29
馬鹿は黙ってコーディングしとけ

505 :デフォルトの名無しさん:2013/09/12(木) 18:56:08.46
なんで嫌なの?馬鹿なの?死ぬの?

506 :デフォルトの名無しさん:2013/09/12(木) 19:05:49.24
monoのAOTでも使っとけ

507 :デフォルトの名無しさん:2013/09/12(木) 19:14:55.38
馬鹿は死ね

508 :デフォルトの名無しさん:2013/09/12(木) 19:15:07.27
速度求めるならunsafeコンテキスト使えや

509 :デフォルトの名無しさん:2013/09/12(木) 19:53:14.00
しねしねしねしね

510 :デフォルトの名無しさん:2013/09/12(木) 22:25:52.41
>>501
犯罪の臭いがする

511 :デフォルトの名無しさん:2013/09/12(木) 22:29:06.33
アンマネージリソースをラップして適切にIDisposableを実装したクラスはマネージドクラスに分類してよいのでしょうか?

512 :デフォルトの名無しさん:2013/09/12(木) 22:31:26.86
当たり前です

513 :デフォルトの名無しさん:2013/09/12(木) 22:37:42.67
自作アプリケーション内にWebBrowserのコントロールを入れています。
そのフォームから出力される音量をコントロールしたいです。
ググってみたところwinmm.dllもしくはCoreAudioAPIを叩く感じかなと思ったのですが…
そもそもそのアプリケーションのみの音量の変更およびミュートなどは可能なのでしょうか?

514 :デフォルトの名無しさん:2013/09/12(木) 22:40:33.54
無論
XPまでの方法で音量を変更しようとすると、自身のプロセスしか音量変更できないようにされるしね

515 :デフォルトの名無しさん:2013/09/12(木) 22:46:29.59
>>514
そうなのですか…
winmm.dllであったwaveOutSetVolumeを使って変更すると自身のプロセスのwave音量のみ変更されるといった感じでしょうか?

516 :デフォルトの名無しさん:2013/09/12(木) 23:19:09.33
>>511
いいわけがないでしょうに?
Windowsを強制終了する可能性のあるアンマネージドを
適切にIDisposableを実装したからと言ってアンマネージドの性質を持つわけがないのです
願わくばさらなる精進を

517 :デフォルトの名無しさん:2013/09/12(木) 23:39:04.12
ということはwinformsはアンマネージということだね。

518 :デフォルトの名無しさん:2013/09/13(金) 00:06:09.88
アンマネージドOSの上で動いてるから当然だな

519 :デフォルトの名無しさん:2013/09/13(金) 00:07:31.17
不思議なことにIDisposable実装クラスはMSはマネージドと言ってるんだよね。

520 :デフォルトの名無しさん:2013/09/13(金) 00:09:02.21
ガベコレがそのうち回収するならマネージド
そうでないならアンマネージド
簡単だろ?

521 :デフォルトの名無しさん:2013/09/13(金) 00:12:44.94
無知が誇らしげに何を言うかと思ったらゴミ拾いの話か

522 :デフォルトの名無しさん:2013/09/13(金) 00:13:37.12
結局どっちやねん。

523 :デフォルトの名無しさん:2013/09/13(金) 00:22:32.47
狭義
unmanaged.dll ←アンマネージド
class UnmanagedWrap ←マネージド

広義
class UnmanagedWrap ←アンマネージド

524 :デフォルトの名無しさん:2013/09/13(金) 00:32:40.05
マネージクラスでアンマネージリソースを扱ってるだけ
中で何してようがC#で定義したクラスはマネージクラスだし
どう上手にラップしようがアンマネージリソースはアンマネージリソース

525 :デフォルトの名無しさん:2013/09/13(金) 00:51:50.92
慣用的に使われるのとは違うかも知れないがCLRではこういう分け方になる

managed ILのコード
 safe  managedのうち検証可能のもの
 unsafe managedのうち検証不可のもの
unmanaged IL以外(ネイティブコード)
mixed C++/CLIで生成可能なmanaged/unmanagedが混ざったコード

※P/Invokeを使ってwin32apiを呼び出していてもmanagedとなる。

526 :楽天 おまえもか:2013/09/13(金) 11:16:22.53
【シャープがサムスンから出資】売国楽天・三木谷氏「国際化時代で、歓迎すべき。海外企業に買収されるアレルギーいかになくしていくか」
http://treasonnews.doorblog.jp/archives/25301581.html
シャープ、サムスンとの提携交渉を打ち切り 日本の技術“コピー”に待った!
http://www.zakzak.co.jp/economy/ecn-news/news/20130829/ecn1308291532007-n1.htm

技術を狙ってる奴らに買収されることを「国際化」とは、これいかにw

【参院選】東京:三木谷氏と藤田晋氏が民主・鈴木寛候補を応援、街頭演説…「若者が風を起こすかどうか」
http://uni.2ch.net/test/read.cgi/newsplus/1373293935/
楽天の三木谷会長、仙台で推薦するみんなの党候補応援
http://www.yomiuri.co.jp/election/sangiin/2013/news2/20130715-OYT1T00641.htm

民主党は、パナソニックやシャープ、ソニーを潰す気だった?
http://www.youtube.com/watch?v=iG_oaqU0pEM

527 :楽天 おまえもか:2013/09/13(金) 11:22:26.48
(楽天)三木谷浩史 H. Mikitani @hmikitani 6月3日 ツイート

サムスンのリー社長の自宅に招待され、そのとなりにらあるサムスン財団の美術館を
本人に案内してもらう。韓国の高度な伝統工藝技術は素晴らしい。
その、変化の時代背景も面白かった。IT駆使して説明、すごい。
お互いに尊敬しあう関係を本当に築くべきだと思います。
http://twitter.com/hmikitani/status/341481291142799360

528 :デフォルトの名無しさん:2013/09/13(金) 13:03:14.98
ほうほう

529 :デフォルトの名無しさん:2013/09/13(金) 16:05:53.28
かっこいいGUIとか海外製のプログラムとかよく見かけるのですが、

どう作っているのでしょうか?
専門的に作るものでもあるのでしょうか
教えてください。

530 :デフォルトの名無しさん:2013/09/13(金) 16:09:45.38
プログラミングスキルよりもデザインセンス(ボタンの作成能力や素材の収集能力、それを活かすセンス)が必要
例えばhtmlでカッコイイの作れなきゃC#でも作れない

531 :デフォルトの名無しさん:2013/09/13(金) 16:11:32.72
かっこいいGUIのソフトって使いにくい

532 :デフォルトの名無しさん:2013/09/13(金) 16:35:06.81
かっこよく作れなかったら泥臭さで勝負
俺の作るソフトはみな10年選手
もう使わないで!と言ってるのに使い続けられる
なぜなんだろう?

533 :デフォルトの名無しさん:2013/09/13(金) 17:05:57.76
俺もIE6用のプラグイン公開してたことあるがいまだに使ってる奴いるなw

534 :デフォルトの名無しさん:2013/09/13(金) 17:12:33.38
オサレセンスから磨かないとな

535 :デフォルトの名無しさん:2013/09/13(金) 17:17:22.68
オシャレ=使いくいなんてとっくにみんな知ってる。
ユーザーからWPFが嫌われてるのが証左。

536 :デフォルトの名無しさん:2013/09/13(金) 17:19:13.36
WPFで流行りのシンプルなの作ればいい

537 :デフォルトの名無しさん:2013/09/13(金) 17:29:33.42
シンプルすぎてボタンがボタンかどうかホバーかクリックしてみないと分らない使いにくさだよ。

538 :デフォルトの名無しさん:2013/09/13(金) 17:31:24.83
美人は三日見ると飽きるがブスは三日見ると慣れるという事だな

539 :デフォルトの名無しさん:2013/09/13(金) 17:33:23.23
リンクだと思ってクリックしたらただの強調表示でしたみたいな。イラってくるよな。

540 :デフォルトの名無しさん:2013/09/13(金) 17:36:32.79
HTML風のリンクなのにマウスカーソル変わらないのも腹立つな

541 :デフォルトの名無しさん:2013/09/13(金) 17:39:15.80
メニュー項目がグレーになってるのが
液晶の角度で見分けがつかない時のイライラと来たら

542 :デフォルトの名無しさん:2013/09/13(金) 17:42:09.60
IE10のタブが腹が立つ。
タブ切り替えようとタブにマウスカーソルを移した瞬間、閉じるボタンが出現して、そのまま押してしまう。

こんな嫌がらせUI考えた奴はほんと馬鹿。

543 :デフォルトの名無しさん:2013/09/13(金) 17:49:51.96
IEなんてWebの開発者と情弱しか使わんだろ

544 :デフォルトの名無しさん:2013/09/13(金) 19:47:05.16
日本の家電はサムスンとか関係なしに高い無駄だらけ必要な機能がないダサいから売れないんだよね

545 :デフォルトの名無しさん:2013/09/13(金) 19:47:51.51
会社にIEを使う苦痛を強いられてる

546 :デフォルトの名無しさん:2013/09/14(土) 01:08:44.39
WindowクラスのプロパティをBindingしたいんだけど。。。

別クラスでINotifyPropertyChangedを継承ってサンプルはみつかったんだけど、
もっとシンプルに別クラスをつくらないでやる方法ないかな?

C#はLinqあたりから、記述の略がいろいろあって、Web毎に表記が違ってわかりにくい!

こんな感じでできたらうれしい
XAML
<TextBox Name="textBox1" Text="{Binding Path=Sample}" />

CS
public partial class MainWindow : Window
{
public string Sample {get; set;}

public MainWindow()
{
InitializeComponent();

これでSampleを変更したら、<TextBox> が変化するようになるといいんだけど、できなかった。。。

547 :デフォルトの名無しさん:2013/09/14(土) 01:19:41.15
>>546
DataContextにthisを代入しろ
あと、普通のプロパティだとプロパティの値を変えても反映されないので
Windowの派生クラスなら依存関係プロパティとして定義する

548 :デフォルトの名無しさん:2013/09/14(土) 03:53:43.75
つ: http://www.amazon.co.jp/dp/4798038148
Chapter 02 はじめてのプログラミング
02-01 Windowsフォームアプリを作成する [アプリ作成の基本操作(1)]
画面とロジックのバインディング アプリの実行確認

サンプルコードなどのダウンロード
http://www.shuwasystem.co.jp/support/7980html/3814.html

初めてのHelloWordがいきなりバインディング

549 :デフォルトの名無しさん:2013/09/14(土) 06:19:56.20
>Windowsフォームアプリを作成する

なのに?!

550 :546:2013/09/14(土) 10:51:59.03
547>>さんのアドバイスを参考に、こんな風に書いた。
とりあえず、うごいた!ありがとう!

XAML
<TextBox Name="textBox1" Text="{Binding Path=SampleText}">

CS
public partial class MainWindow : Window
{
public static readonly DependencyProperty SampleTextProperty = DependencyProperty.Register("SampleText", typeof(string), typeof(MainWindow));

public string SampleText
  {
    get { return (string)GetValue(SampleTextProperty); }
    set { SetValue(SampleTextProperty, value); }
  }

public MainWindow()
{
InitializeComponent();

textBox1.DataContext = this;

あとは、SampleTextを変更すれば自動で表示しました。
Bindingなんとなく理解だけど、いくつか不明点も!
2つのコントロールに同じ値いれるには、DataContextをもっと上流のタグ(2つのコントロールの共通の上流のタグ)
にすれば表示はできたんだけど、最初から、Windowタグの1個下のGridとかにDataContextしておくもの?
それとも、最小の範囲でやっておくのが流儀?

551 :デフォルトの名無しさん:2013/09/14(土) 17:57:15.21
C#信者の布教活動がうざい。

552 :デフォルトの名無しさん:2013/09/14(土) 18:00:16.88
他のObjectContextインスタンスで更新されたSQL server CEの変更通知を
ObjectContextか他の手段で受け取る方法はないでしょうか?

553 :デフォルトの名無しさん:2013/09/15(日) 01:15:22.48
>>550
DataContextは必要な範囲で指定する
例えばウィンドウ内にグループボックスがあって、その中に社員情報を編集するためのテキストボックスがまとまって入っている場合、
グループボックスのDataContextに社員オブジェクトを代入する
MVVMならビュー全体とバインド対象を一対一で対応させるのでウィンドウのルートのDataContextにVMを入れる

ちなみにDataContext=thisは普通やらない
自分自身にバインドしたいならマークアップ拡張のRelativeSource.Selfを使う

554 :デフォルトの名無しさん:2013/09/15(日) 01:18:03.59
>>553
いやすまんテキストボックスならSelfは無理だな
ともかくバインディングソースを明示的にXAML内で指定すればいい

555 :デフォルトの名無しさん:2013/09/15(日) 13:11:50.73
荒れたスレにナゲット再び

 〃. ̄. ̄.ヽ
 |: : : |
 | : : :|
  ヽ._._./

http://monobook.org/wiki/NuGet

556 :デフォルトの名無しさん:2013/09/15(日) 14:25:21.68
なぜMicrosoftは.NETのHTMLパーサを作らないのですか?

557 :デフォルトの名無しさん:2013/09/15(日) 14:28:49.55
特にメリットがないから
それに今時は動的なページが多いのでパーサはブラウザとセットじゃないと使いものにならない

558 :デフォルトの名無しさん:2013/09/15(日) 14:37:49.29
>>557
僕はエロサイトから本当に必要な情報だけを抜き出して軽量化しローカルエリアのDBに保存したいのです
このような処理にブラウザは必要ないはずです

559 :デフォルトの名無しさん:2013/09/15(日) 14:39:41.64
勝手にSGMLパーサーでも使いたまえ

560 :デフォルトの名無しさん:2013/09/15(日) 14:44:01.20
その手のは真面目に構文解析しなくても正規表現でだいたい十分

561 :デフォルトの名無しさん:2013/09/15(日) 14:51:21.03
xml準拠にしなかった規格屋がバカなだけ
これが人類の発展を五年は遅らせた

562 :デフォルトの名無しさん:2013/09/15(日) 14:57:06.13
webbrowserコンポーネントを使えばいいだけ

563 :デフォルトの名無しさん:2013/09/15(日) 15:14:37.27
C#のソース上からLOAD DATA INFILE構文は使用可能でしょうか?
また、使用できる場合、戻り値等は取得できるのでしょうか?

564 :デフォルトの名無しさん:2013/09/15(日) 15:17:59.33
C#でWebアプリケーション開発ってメジャーですか?
勉強するならC#やりたいんですけど一番やりたいことがWebアプリケーションの開発なので
CGIでメジャーで導入も簡単で無難なPythonにしようかなと迷っています
まだよく調べてないのですがWindowsサーバは本番環境じゃ用意できないので
Linux+Apache+Mono(mod_mono?)あたりで開発しようと思ってます

565 :デフォルトの名無しさん:2013/09/15(日) 15:25:11.64
ASP.NET+C#は商用だと強いけど趣味レベルではほとんど使われてない

566 :564:2013/09/15(日) 15:29:54.88
やっぱそうですよねーうーん困ったなぁ・・・
C#は先端っぽくて色々おもしろそうで
次新しい言語覚えるときに確実に役立つと思うのですけど
目的が目的なので無難にPython行ってきます

567 :デフォルトの名無しさん:2013/09/15(日) 15:31:17.29
趣味レベルのだとフリーの拾ってきてカスタマイズするだけだろ

568 :デフォルトの名無しさん:2013/09/15(日) 15:39:43.76
趣味でもVB.NETC#ASP.NETでいいよ
Office連携とか楽だし実用的

569 :デフォルトの名無しさん:2013/09/15(日) 15:39:51.01
メジャーで無難というならPHPだろ
PythonなんてWebには日本じゃほとんど使われてないぞ

570 :デフォルトの名無しさん:2013/09/15(日) 15:44:28.10
ASP.NETなんて先端どころか土方中の土方だよ
せめてASP.NET MVCの方

571 :564:2013/09/15(日) 16:02:54.05
皆さんレスありがとうございます

>>569
PHPはちょっと学習には向かない気がするので・・・
Pythonはドキュメントが心配でしたが割りと日本語のも揃ってるみたいなのでなんとかなるかなと
英語読めないとだめだとかこの世界だと言われちゃいますけどね

ASP.NET MVC Framework調べてみました
こっちのほうが自分にはしっくりきそうです
やっぱいじってみたくなったのでちょっと下調べ進めてみます

572 :デフォルトの名無しさん:2013/09/15(日) 16:46:36.38
>>556-562
http://www.nuget.org/packages/htmlagilitypack

573 :デフォルトの名無しさん:2013/09/15(日) 16:47:58.24
>>564
MonoとServiceStackが面白い
大至急やれ

574 :564:2013/09/15(日) 17:07:36.75
>>573
これまたよさそうなのを紹介していただきありがとうございます
ドメイン駆動設計という言葉は知らなかったのでこれまた興味をそそられます

575 :デフォルトの名無しさん:2013/09/15(日) 19:28:44.60
>>563をご存じな方はいらっしゃいませんかね・・・。

576 :デフォルトの名無しさん:2013/09/15(日) 19:33:13.38
>>575
よく知らんが、できるだろ
質問が説明不足なところ見るとおまえも分かってないみたいだからおまえにはできないと思うが

577 :デフォルトの名無しさん:2013/09/15(日) 19:49:14.20
とりあえずConnector .NETでも使ってみたら

578 :デフォルトの名無しさん:2013/09/15(日) 19:50:20.73
WPFでマウスWheelのイベント拾いたいのだけど。
RoutedCommandでCommandBindings.Addのやり方だと、
ExecutedRoutedEventArgsでe.Deltaの値がこない。。。

MouseWheelイベントでの方法は、textBoxをReadOnlyにしてる
ので、イベントが拾えから使えないのです。

ReadOnlyのTextBoxからMouseWheelEventArgsが取得できる方法、
もしくは、Deltaの値が取得するにはどうすればいいのでしょうか?

579 :デフォルトの名無しさん:2013/09/15(日) 20:14:10.40
C#でクラスライブラリを作成し、VBAから呼び出して使用したくて調べているのですが、
COM相互運用機能なるものでレジストリに登録せずに
単純にaccessまたはexcelファイルと同じディレクトリにコピーするだけで使用する方法はありますでしょうか?

580 :C ◆I/xffVsGYk :2013/09/15(日) 20:17:11.96
いまあるパズルゲームの対戦用AIを作っているのですが、
手の先読みをしようと再帰関数を使ったところ、
スタックオーバーフローが出ました。
ループで置き換えようにも、再帰関数の中で複数回その関数を呼び出しているため
(具体的には関数の戻り値の和をfor文で出してその結果を使って演算しています。)
解決策が見つかりそうになりません。

どうしたらいいでしょうか?

581 :デフォルトの名無しさん:2013/09/15(日) 20:24:25.20
>>580
再帰はそういうことになるから使わないでほかの方法で実装し直す。もしくは再帰回数を強制的に制限かける

582 :デフォルトの名無しさん:2013/09/15(日) 20:26:00.80
>>579
ややこしいこと考えるよりexeにしてテキストファイルを経由すればいい

>>580
var stack = new Stack<T>();
stack.Push(最初の引数);
while (0 < stack.Count) {
 var arg = stack.Pop(); // 引数を取り出す
 … // 引数を使ってなんか処理する
 stack.Push(再帰呼び出しの引数); //再帰呼び出しの代わり
}
で機械的に置き換えられる

583 :デフォルトの名無しさん:2013/09/15(日) 20:26:58.51
場当たり的にはeditbin /STACKでスタックサイズを拡張すればいい
スタックはスレッドごとに作られるからスレッドを分けることでも全体量は増やせる
それでも駄目で、あなたが自分は無能を自称するなら諦めるしかあるまい

584 :デフォルトの名無しさん:2013/09/15(日) 20:29:40.06
>>582を補足
最後のstack.Pushは再帰呼び出しが必要な場合だけな
当たり前だが無条件に呼んだら無限ループするぞ

585 :>>580:2013/09/15(日) 20:36:41.21
>>581, >>582, >>584さんありがとうございます。

繰り返しになるかもですが、一回の再帰ループの中で複数回関数を使っているので
繰り返し回数が対数的になり、単純なループでは求まらないと思います。

誰かアイデアください。

586 :>>580:2013/09/15(日) 20:38:45.70
ちなみに複数回というのは平均して30回程度です。

587 :デフォルトの名無しさん:2013/09/15(日) 20:41:47.18
知らんがな
アルゴリズムを工夫しろ、以上のことが聞きたいなら処理内容を晒せ

588 :デフォルトの名無しさん:2013/09/15(日) 20:44:06.28
よく事務所にこういう個人の発明オタクが来るわ
内容は教えられないけど特許の事務手続きして欲しいって奴
無茶言うな

589 :デフォルトの名無しさん:2013/09/15(日) 20:55:01.92
アイデアって582より基本的なものあんの?

590 :デフォルトの名無しさん:2013/09/15(日) 21:28:44.87
>>579
普通にC#でDLLを作成してExcelからDLLと関数を指定して呼び出せばよい。

591 :デフォルトの名無しさん:2013/09/15(日) 21:43:33.00
>>579
無いね
RegAsmでレジストリ登録する必要がある

592 :デフォルトの名無しさん:2013/09/15(日) 21:44:45.20
>>591
Excelは普通にDLL呼べる。COMじゃなくてもいいよ。

593 :デフォルトの名無しさん:2013/09/15(日) 21:50:14.35
VBA実行時にCOM登録、終了時に登録解除

594 :デフォルトの名無しさん:2013/09/15(日) 21:56:22.19
>>579
manifestを駆使すれば出来るがおすすめしない。

.NETのCOMコンポーネントにアセンブリマニフェストを
リソースとして埋め込む必要がある。
呼び出し元のWin32アプリにアプリケーションマニフェストを
埋め込むか外付けで記述する必要がある。

595 :デフォルトの名無しさん:2013/09/15(日) 21:56:24.20
Excelを管理者権限で起動させなきゃだね

596 :デフォルトの名無しさん:2013/09/15(日) 22:04:05.54
柔軟性がねえなあw

597 :デフォルトの名無しさん:2013/09/15(日) 22:08:23.42
>>594
気になるのでヒントだけでも欲しいのですが

598 :デフォルトの名無しさん:2013/09/15(日) 22:12:47.74
すいません、スレッドについて質問です。

ボタンを押す度にHttpWebRequestでウェブにアクセスして情報を取得する、ということがやりたいのですが
GetResponse();で情報が返ってくるまでの間にメインスレッドが停止してしまいます。

BeginGetResponseを使うと非同期で取得できるようなのですが、
DNS名前解決他でブロッキングされるらしく面倒なのでスレッドを使おうと思ってます。

で、以下のような流れを考えたんですが、どこかおかしなところありますでしょうか。
ちなみにスレッドAで得た情報を続けざまにスレッドBで処理させる予定です。

ボタンを押す→スレッドA作成→スレッドA内でウェブ情報取得→スレッドA終了直前にスレッド内からスレッドBを立てる→
スレッドBからスレッドAを削除→スレッドAが取得した情報をグローバル変数でスレッドBが取得→
スレッドB、処理した情報をメインの関数を呼んだりして渡す→
スレッドB終了前に自分自身でスレッドBを削除

負荷をかけないようにスレッドは使う時だけ生成して終わったら削除するという流れにしたいんですが
なんかおかしなことをしようとしてる気がしてなりません…

ちなみにunityというソフトのスクリプト部分で使うのでtaskとかは使えませんでした(対応してない?)

599 :デフォルトの名無しさん:2013/09/15(日) 22:21:41.54
>>582,590,591,594
AccessMDBを操作するのにC++でやるよりC#でADO.netを使った方が簡単だと思ったのですが
やっぱり簡単にはいかないですね…
manifestを駆使する方法のページを見てきましたが
594さんの言うとおり、なにやらややこしそうなので素直にexeにしたいと思います。
皆さん回答ありがとうございました。

600 :デフォルトの名無しさん:2013/09/15(日) 22:34:06.67
>>599
そうだね
VB.NETスレも見てるんだけど今64bit版Office使ってるって人が来てて、
Office=32bitって認識も古いんだと感じてたところだよ

601 :デフォルトの名無しさん:2013/09/15(日) 22:38:22.78
>>598
スレッドは削除しなくてもいい
処理が終わって参照がなくなればGC対象になる
スレッドプール使ってスレッド終了時コールバックとか使えばいいんじゃない

602 :デフォルトの名無しさん:2013/09/15(日) 22:39:53.31
>>599
ってかクラスライブラリをDLLにしたくない理由でもあるの?

603 :デフォルトの名無しさん:2013/09/15(日) 22:45:05.49
AccessMDBってVBAからそのままアクセスでき・・・

604 :デフォルトの名無しさん:2013/09/15(日) 22:45:57.87
exeでできるんならその方がいいでしょ
簡単、安全確実、管理もしやすい

605 :デフォルトの名無しさん:2013/09/15(日) 22:46:00.13
COMの登録が必要とか言ってる馬鹿がいるから話がおかしくなって勘違いした模様。

606 :デフォルトの名無しさん:2013/09/15(日) 22:49:36.66
>>601
なるほど、自動的に破棄されるんですね、
ではスレッド生成する際に、前のスレッドがnullになってるかどうか確認してから生成した方がいいですね

スレッドプールとコールバックのあたりをもうちょっと調べてみます!

607 :デフォルトの名無しさん:2013/09/15(日) 22:53:17.97
プロセスを中間ファイルで繋ぐCOBOL時代からの伝統的なやり方はなんだかんだ言って優れてるよね
個々がいくらウンコだろうとテストもデバッグも差し替えも一定以上に困難にはならないという、まさにドカタ向きの素晴らしい手法

608 :デフォルトの名無しさん:2013/09/15(日) 22:55:03.43
そうやって年金DBはゴミデータだらけになりましたとさ。

609 :デフォルトの名無しさん:2013/09/15(日) 23:29:37.83
>>600
64bit版Officeですか!
私の周りではまだ聞いたこともないですw
>>602
まだまだ初心者で知識不足な部分が多いのですが
クラスライブラリ=DLLだと認識してたのですが違うんですか!?
>>603
確かにそうですね
Officeのバージョンが人によって様々な場合に古いバージョンでも
新しいOfficeの形式を扱って処理をさせたいので、ADO.netで対応できないかなと思っていました
全部VBAでやろうかと思ったのですが、処理速度の関係もあって
一部DLL化しようと思ったのですが、調べてみるとレジストリうんぬんという事だったのでこちらで質問させていただきました。
>>605
すみません私も登録が必要なのだと思っていました…

610 :デフォルトの名無しさん:2013/09/16(月) 00:24:04.48
コンソールアプリでWebClient.DownloadString()を使って
ファイルをダウンロードしているのですが、例外をtry catchで捕まえているのに
標準エラー出力にエラーメッセージが勝手に出力されてしまいます
これを抑止する方法を教えてください
2> で標準エラー出力をリダイレクトして潰すのではなく、出力そのものを抑止したいです

611 :デフォルトの名無しさん:2013/09/16(月) 00:40:39.21
追記です
自前で標準エラー出力に出すものもあるので、標準エラー出力を完全に潰すのは困ります

612 :デフォルトの名無しさん:2013/09/16(月) 01:17:34.31
Releaseビルドにしたら出なくなるとか?

613 :デフォルトの名無しさん:2013/09/16(月) 01:55:54.50
>>610
それ使ったこと無いから知らないけど、どっかからコピペしてきたソースで実はそこに出力するのがあるとか?
そうじゃなけくそれが勝手に標準出力するなら、それ使うのやめてほかの方法でDLすればいいと思う

614 :デフォルトの名無しさん:2013/09/16(月) 02:09:46.72
すみません、全部自分のミスでした… この質問はなかったことに…

615 :デフォルトの名無しさん:2013/09/16(月) 02:30:50.52
質問です。
C#プロジェクトからC++/CLIクラスを呼びたいのですが、
空のCLRプロジェクトで作ったクラスはどうやって呼び出したら良いのでしょうか?
名前空間が見つかりませんというエラーが発生します。

616 :デフォルトの名無しさん:2013/09/16(月) 02:38:24.65
参照の追加でビルドしたC++のDLL追加
もしくはソリューションにC++のプロジェクト追加してから、参照の追加でそのプロジェクト追加

617 :デフォルトの名無しさん:2013/09/16(月) 02:43:11.23
>>616
ありがとうございます。

618 :デフォルトの名無しさん:2013/09/16(月) 06:21:05.24
>>582
exeにしてテキスト経由って具体的にどういう事ですか?

619 :デフォルトの名無しさん:2013/09/16(月) 09:23:29.42
>>618
VBAからEXE呼ぶ→EXE内でDB参照して結果をtxtファイルに書き出す→VBAからtxtファイルを読み込んで結果を受け取る

620 :デフォルトの名無しさん:2013/09/16(月) 11:11:19.60
xmlファイルがいいよ

621 :デフォルトの名無しさん:2013/09/16(月) 11:28:18.49
webサービス化もいいよ
exeもdllも要らなくなる

622 :デフォルトの名無しさん:2013/09/16(月) 11:35:14.85
もうScript#とScript Controlを組み合わせればいいんじゃね?

623 :デフォルトの名無しさん:2013/09/16(月) 12:27:29.31
VBAからパワーシェル呼び出して気持ちよくなろう

624 :デフォルトの名無しさん:2013/09/17(火) 15:26:23.39
あるwebページの中に別ドメインのiframeが存在するページがあります。
そのiframeで表示されているwebページの要素にアクセスしたいのですが
HRESULT からの例外: 0x80070005 (E_ACCESSDENIED)
という感じでアクセスが拒否されてしまいました。
セキュリティの問題なんだろうと思いますが、セキュリティレベルが低下してでもアクセスを行いたい場合はどうすればいいのでしょうか?

625 :デフォルトの名無しさん:2013/09/17(火) 15:38:41.55
http://social.msdn.microsoft.com/Forums/windows/en-US/01464a61-dbd5-4c3a-b9df-71b8db6654dd/webbrowser-control-exception-dealing-with-frames

626 :デフォルトの名無しさん:2013/09/17(火) 17:03:39.04
Windows7+C#でソフトを作っているのですが
ウィンドウを透過するために
DwmEnableBlurBehindWindowAPIを使ってしました。
特に問題なく動いていたのですがWindows8を購入して
そちらで動かそうと思ったところ表示が乱れてしまいました。
どうもWindows8ではエアログラスというのが廃止になったので
その影響のようなのですが、何か変わりになる方法はないものでしょうか。

627 :デフォルトの名無しさん:2013/09/17(火) 17:28:05.75
>>625
解決策は載ってませんね…
ぐぐったら
IInternetSecurityManagerのGetSecurityIdをオーバーライド
とありましたが、どのようなものなのでしょうか…

628 :デフォルトの名無しさん:2013/09/17(火) 22:12:55.21
Foreach がある時点でオワタ

629 :デフォルトの名無しさん:2013/09/18(水) 10:41:16.62
VB並みに便利だけどね

630 :デフォルトの名無しさん:2013/09/18(水) 11:26:42.78
For Each

Next

ひょえーーーっ!

631 :デフォルトの名無しさん:2013/09/18(水) 11:46:30.00
Foreach いかんのか
もしかして全部LINQでかく時代なのか

632 :デフォルトの名無しさん:2013/09/18(水) 11:52:41.36
Foreachは便利すぎる
これに慣れてC++に戻れなくなる自分が怖いw

633 :デフォルトの名無しさん:2013/09/18(水) 12:08:27.84
C++にだってイテレータあるだろ
auto使えるならコードの手間もそこまで大きくないし

634 :デフォルトの名無しさん:2013/09/18(水) 12:47:47.66
強引な主張だな

635 :デフォルトの名無しさん:2013/09/18(水) 14:06:25.56
Foreachは4.0→4.5で動作が変わったな

636 :デフォルトの名無しさん:2013/09/18(水) 14:24:16.60
kwsk

637 :デフォルトの名無しさん:2013/09/18(水) 14:37:19.85
多分Asyncとyield returnの絡みではないかと

638 :デフォルトの名無しさん:2013/09/18(水) 14:44:26.75
>>635
4.5使ったこと無いけど、計算結果変わるの?

639 :デフォルトの名無しさん:2013/09/18(水) 15:05:44.27
普通は変化なし
非同期のプログラムで変化あり

640 :デフォルトの名無しさん:2013/09/18(水) 15:16:48.99
>>635
クロージャの動作だね
var data = new int [] { 0,1,2,3,4,5,6,7,8,9 };
Action f2 = null;
foreach (int i in data) {
f2 += () => Console.WriteLine(i); // C#5 0から9, C#4以前 すべて9
}
f2();

641 :デフォルトの名無しさん:2013/09/18(水) 15:23:19.93
おれには読めない文法だからどうでもいいや。

642 :デフォルトの名無しさん:2013/09/18(水) 15:40:18.45
>>640
あ、これですこれです
結構大きな変更だと思うので気をつけないと

643 :デフォルトの名無しさん:2013/09/18(水) 15:45:12.16
うむ。読めない

644 :デフォルトの名無しさん:2013/09/18(水) 15:51:40.34
いや難しくはなくね?
マルチキャストの話だよな

645 :デフォルトの名無しさん:2013/09/18(水) 16:02:47.36
移植性を気にするならこれで
foreach (int i in data) {
 int j = i;
 f2 += () => Console.WriteLine(j); // 0から9

646 :デフォルトの名無しさん:2013/09/18(水) 16:06:03.41
for文でええんや

647 :デフォルトの名無しさん:2013/09/18(水) 16:30:07.90
ワロタw

648 :デフォルトの名無しさん:2013/09/18(水) 17:29:53.03
M$が「これはエラッタです」と発言しそう
だから4.5は4.0を上書きしちゃうんだろうな

649 :デフォルトの名無しさん:2013/09/18(水) 18:33:49.65
7は3.5だし8は4.5だし、もしかして4.0っていらない子?
あえて4.0を選択する理由無くなったかな?

650 :デフォルトの名無しさん:2013/09/18(水) 19:26:56.60
4.5が入ってれば4.0だろうと4.5で動くんだからどっちでもいいでしょ

651 :デフォルトの名無しさん:2013/09/18(水) 20:37:41.76
プログラミングC# 第6版って本で勉強してるんですけど、挫けそうです
この本って初心者にはきついですかね

652 :デフォルトの名無しさん:2013/09/18(水) 20:50:01.11
COM相互運用したい時はEnterpriseServicesを使うのがセオリーなんですか?

653 :デフォルトの名無しさん:2013/09/18(水) 21:00:58.12
COM相互運用といってもどういうシチュエーションなのか

自分で書いたクラスをCOMに公開したいならComVisibleAttributeをtrueにしてregasmだし

654 :デフォルトの名無しさん:2013/09/18(水) 21:08:11.58
>>653
WEB鯖のレガシASPからアプリ鯖に登録したCOMサーバをリモート呼び出ししてる
このアプリ鯖を.NETに更新したい

655 :デフォルトの名無しさん:2013/09/18(水) 21:26:30.02
>>651
プログラミングしたいなら本なんて捨てちまえ。読書したいってなら何度も読め

656 :デフォルトの名無しさん:2013/09/18(水) 21:31:46.53
なぜ分かる機能だけで組み始めようと思わないのかね?
本を読むのはある程度C#で組めるようになって俺って一人前ジャン
と思った頃読んで、その言語仕様の深さを垣間見て
一層精進するためのものなんだけどね。

657 :デフォルトの名無しさん:2013/09/18(水) 22:02:15.93
本ってすぐ内容が陳腐化するし

658 :デフォルトの名無しさん:2013/09/18(水) 22:05:36.81
古い本はKindleで無料配布してよね

659 :デフォルトの名無しさん:2013/09/18(水) 22:12:19.05
語り継ぐに値する本だけ読んでりゃいいよ

660 :デフォルトの名無しさん:2013/09/18(水) 22:35:26.00
>>655
まじか
なんか何でも本から始める癖があってなあ
ネットで勉強した方がましなんかね

661 :デフォルトの名無しさん:2013/09/18(水) 22:37:30.57
まあ一つ言えるのは、プログラミングに年齢の序列は無いと言う事かな
もうかれこれC#を10年近く使って来ているが
最近、17歳のガキのコーディングを見て目から鱗が落ちる思いだった
まだこんなテクが残されていたのか!うわーーーっ秀逸!エクセレントォ〜!!!
と叫んでしまうような技が満載だった。
やはり、自分の世界に閉じこもらずに年齢に関係なく色々なプログラマーのコードを見る
これが言語習得の一番の早道かもしれないと思ったわ

662 :デフォルトの名無しさん:2013/09/18(水) 22:40:13.59
まだこんなテクが残されていたのか!うわーーーっ秀逸!エクセレントォ〜!!!
と叫んでしまうような技が満載だった。

663 :デフォルトの名無しさん:2013/09/18(水) 22:42:48.55
わらた

664 :デフォルトの名無しさん:2013/09/18(水) 23:27:27.68
         / ̄ ̄ ̄ ̄\
        /;;::        ヽ
        |;;::      ィ●ァ ;;ヽ
        l;;::ィ●ァ      ::;;ヽ
         ヽ;;::  c{ う   :::;;l
          ヽ;;::;; __/  ::;;;|
           ヽ;;::;;:  ー  ::;;丿
            \;;::  ::;;/
              l;;::  ::;;|
         r ヽヽ::::::|ヽ`ー'´,1ー:::::ヽ、
         {  V:::::::::∨yヽ/::::::::::/,1
         |ノ''::"::::::::::ヽ/::::::::::: r" /
        /:::::::::::::::::::::::::::::::::::::::::::`:y ゝ
        {:::::::::::::::::::::::::::::::::::::::::::::::::} |
        ゝ:::::::::::::::::::::::::::::::::::::::::::丿/
         `|1::ー'::::::::::::、:::::__,.ィ' 」"
         /::::::::::::::::::::::::::::::::/ /
        ,.ゝ:::::::::::::::::::::::::::::::/ ノ
        /::::::::::::::::::::::::::::::::::ヽ/
      /"''ー―-----―'''"ヽ、
     /  /  i!  |  | ヽ   ヽ,
     /  /   |  |  ヽ  ヽ、  ヽ.
    /  i   |  ヽ   ヽ   ヽ、 ,ゝ
    |  |    ヽ  ヽ  ヽ  _,ゝ"
    |__|__,.-|_,.-+─┴‐'",.入
      | ____ |  ヽ_,.-‐''"  ヽ

665 :デフォルトの名無しさん:2013/09/18(水) 23:41:00.48
グレート!ワオ!なコードを書いてると、業績不振になるから注意な。

666 :デフォルトの名無しさん:2013/09/19(木) 03:09:44.61
>>661
それどんな技か知りたい。

667 :デフォルトの名無しさん:2013/09/19(木) 09:30:06.08
エクセレントォ〜!!! なコードうp

668 :デフォルトの名無しさん:2013/09/19(木) 09:57:12.93
foreach (int i in data) {
 int j = i;
 f2 += () => Console.WriteLine(j); // 0から9

669 :デフォルトの名無しさん:2013/09/19(木) 11:00:10.77
以下のようにメソッドの前に[]が付いているコードがあるのですが
この処理はなんと呼びますか?すみません買った入門書に載ってなくて…
[something()]
public static bool methodName()
{
...
}

670 :デフォルトの名無しさん:2013/09/19(木) 11:02:52.60
属性

671 :デフォルトの名無しさん:2013/09/19(木) 11:12:27.99
ありがとうございます!

672 :デフォルトの名無しさん:2013/09/19(木) 14:44:02.30
C#はJavaと違って自分とこのWindowsとの親和性を上げるために
いろいろ工夫してあるからな

673 :デフォルトの名無しさん:2013/09/19(木) 18:03:49.24
名前とIDのペアのようなクラスのリストを定数として持ち、
プログラム内とListview bindingでの利用を考えています
しかし、C#だとクラスを定数として作成できないとのことなので、
何か別の手段が提供されているのでしょうか
AppConfigに分離して起動時に読み込み、というのを考えたのですが、
データの変更がまず無いことと量が多いことからファイルのからの
読み込みではなくコンパイル時に生成されるのが希望です

674 :デフォルトの名無しさん:2013/09/19(木) 18:15:15.71
なんじゃそりゃ

リソースにでも持ったら

675 :デフォルトの名無しさん:2013/09/19(木) 18:21:28.51
constあるじゃん。

676 :デフォルトの名無しさん:2013/09/19(木) 18:51:57.01
>>675
すっこんでろ

677 :デフォルトの名無しさん:2013/09/19(木) 18:52:56.27
classにする意味がわからん

678 :デフォルトの名無しさん:2013/09/19(木) 18:56:40.93
その使い方ならconstで十分だな。

679 :デフォルトの名無しさん:2013/09/19(木) 19:01:41.98
クラスのリストを「定数」と言ってる時点でアホっぽい。

680 :デフォルトの名無しさん:2013/09/19(木) 19:15:49.18
初心者スレなんだぞw

681 :デフォルトの名無しさん:2013/09/19(木) 19:26:05.35
ほんまよ
まあ1週間前にプログラミング始めてC#やってる俺としては、そもそも何言ってるか分からんがな!

682 :デフォルトの名無しさん:2013/09/19(木) 19:27:20.03
そもそもconstにしたいのかグローバルにしたいだけなのか。

683 :デフォルトの名無しさん:2013/09/19(木) 19:36:05.26
public const int[] id = { 1, 2, 3, 4, 5 };
public const string[] name = {"test1","test2","test3","test4","test5"}:

684 :デフォルトの名無しさん:2013/09/19(木) 20:07:29.45
一週間もやればたいていの業務システムは組めるのが標準的プログラマ

685 :デフォルトの名無しさん:2013/09/19(木) 20:17:10.59
bindingってことならwpfかな?それならxamlの中で
xmlを使ってデータを記述するのが一般出来です

686 :デフォルトの名無しさん:2013/09/19(木) 20:23:28.79
「キーバリュー形式の外部データを使ってコンパイル時にコード生成を行いたい」ってことかな?

687 :デフォルトの名無しさん:2013/09/19(木) 20:29:51.18
xmlを使うと読み込みに時間がかかるから生データ持たせたいんだろ

688 :デフォルトの名無しさん:2013/09/19(木) 20:39:50.69
>>684
仕様書の文言を機械的に翻訳するだけだからね
誰にでもできる簡単な仕事

689 :デフォルトの名無しさん:2013/09/19(木) 20:45:42.35
>誰にでもできる簡単な仕事

自分で出来ない事を簡単だと言い放つ人間の特徴は無責任、傲慢、嫌われ者

690 :デフォルトの名無しさん:2013/09/19(木) 21:06:59.21
むしろ色々な物事を単純作業と捉えられるのはプログラマの重要な資質では
プログラミングの本質でしょ

691 :デフォルトの名無しさん:2013/09/19(木) 21:12:09.05
仕様書の記述はティアー考慮してないことが多いんでそのまま組んでもゴミしかできないよ

692 :デフォルトの名無しさん:2013/09/19(木) 23:17:12.49
現実を無視するのは大いにマイナスな資質だな

693 :デフォルトの名無しさん:2013/09/19(木) 23:31:09.18
>>688
機械的に作れば良い位、完璧な仕様書が出てくれば、
死人でなくて済むんだがな...

694 :デフォルトの名無しさん:2013/09/19(木) 23:46:41.42
機会的に作れるなら土方なんか雇わずにビルダを作るし

695 :デフォルトの名無しさん:2013/09/20(金) 01:29:11.81
専用スレが無かったのでこちらで質問させてください
現在geckofxを用いたブラウザをC#で開発しているのですが、スクリーンショットがうまくいきません。
DrawToBitmapを使うと保存されたファイルが真っ白になっています。
Firefoxの場合だとShift+F2でコンソール表示、screenshotと入力すればそのままスクリーンショットが撮れていたのでその感覚でやってみたのですがだめでした。
何か方法はありませんでしょうか

696 :695:2013/09/20(金) 01:49:32.24
申し訳ないです、自己解決しました。
GetBitmapメソッドが別に存在していることに気づき、それを使用したらキャプチャが出来ました。

697 :デフォルトの名無しさん:2013/09/20(金) 14:54:59.39
>>693
機械的に扱えるような形式的仕様書を作ることはできて、一時期銀の弾丸のように持て囃されたが
作るのに大学数学の専門的な知識が必要かつ手間も膨大ってことで一瞬で廃れた
今では航空機のシステムみたいに手間を無尽蔵にかけてでも品質を優先する場所で主に使われてる

698 :デフォルトの名無しさん:2013/09/20(金) 15:10:22.26
大学数学必須www

699 :673:2013/09/20(金) 16:51:54.16
分かりにくい説明ですいません
Cで言うところの
struct Product {
char *name;
int id;
};

const struct Product AllProducts[] = {
{"AaA", 115},
{"BbB", 998},
...
};
というのがやりたいことです
Cなので構造体なのと、実際にはメンバが十数あります



以下のように起動後のインスタンス生成であれば可能なのは確認しました
class Product {
public string Name;
public int Id;
}

...
static Product[] AllProducts = new Product[]{
new Product(){ Name = "A", Id = 998},
new Product(){ Name = "B", Id = 192}
};

コンパイル時のインスタンス生成と変更不可を期待してconstを付与すると、組み込み型ではないのでエラーとなります
この場合はどのように実装するのが綺麗なのでしょうか

700 :673:2013/09/20(金) 16:56:17.50
>>674
希望の定数インスタンスをシリアライズ化したものをリソースとして作成するものを別途作る形でしょうか

>>675
const付与するとコンパイルが通りません

>>677
DBのテーブルをプログラム内部で定数定義したいと思って下さい

>>682
要素がクラス・構造体の定数配列の作成が目的です
変更不可だけならreadonlyでいいのですが、コンパイル時のインスタンス生成(という時点で矛盾?)のやり方が知りたいところです

>>683
最初に考えました
binding用にnameを、indexはSelectedIndexを使えば実装可能ですが、あまりにもCっぽいのでC#作法を模索しているところです

>>685
XAML側でクラス定義をどうやるのか調べてみます

>>686
まさにそれです
valueにクラスか構造体を指定したいのですが、そのやりかたを模索しているとことです

>>687
その通りです
どうにもならなければマシンに頑張ってもらいます:-<

701 :デフォルトの名無しさん:2013/09/20(金) 17:28:05.76
コンパイル時にマネージオブジェクトとして用意しておくのは無理
まあよほどのものじゃない限りは起動時に用意してもコスト増加にはならん

702 :デフォルトの名無しさん:2013/09/20(金) 17:56:21.67
>>700
xamlでクラス定義じゃなくて、xaml中にxmlでデータを記述するんですよ
http://stackoverflow.com/questions/13638237/how-to-bind-the-xml-element-name-to-a-listview-column-in-wpf-xaml-file
xmlと言ってもコンパイルされてリソース中に保持されるからオーバーヘッドも気にならないでしょうね

703 :デフォルトの名無しさん:2013/09/20(金) 18:23:37.49
VS用のアドイン作れば良いんじゃないか

704 :デフォルトの名無しさん:2013/09/20(金) 19:32:41.01
T4だな

705 :デフォルトの名無しさん:2013/09/20(金) 19:57:10.30
今までこのサイト
http://www.forexite.com/free_forex_quotes/forex_history_arhiv.html
からWebClientでファイルをダウンロードしてたんですが、2,3日前からダウンロードできなくなりました
Webページからは今までどおりダウンロードできるのですが、どうしてダウンロードできなくなったかわかりません
ファイルのURLは例えばhttp://www.forexite.com/free_forex_quotes/2013/09/200913.zipですが、
ダウンロードするにはどうすればいいですか?

706 :デフォルトの名無しさん:2013/09/20(金) 19:59:13.30
ハッカー認定されたのでしょう。

707 :デフォルトの名無しさん:2013/09/20(金) 20:02:21.56
Cookie要求するようになったとかRefererが変なのは弾くようにしたとかそんなんだろ

708 :デフォルトの名無しさん:2013/09/20(金) 20:04:55.71
ごめんなさい、できました
焦ってしまっていろいろミスしてました

709 :デフォルトの名無しさん:2013/09/20(金) 20:05:12.72
アクセス拒否だろうなw

710 :デフォルトの名無しさん:2013/09/20(金) 20:17:38.60
なあんだつまんない

711 :デフォルトの名無しさん:2013/09/20(金) 21:11:01.26
A denial, a denial, a denial

712 :デフォルトの名無しさん:2013/09/20(金) 22:30:33.54
値型も参照型も透過的に扱うには、
どういうふうに設計するべきなの?

class XXX<T> {
T val;
void func() { val.Tfunc(); }
}
みたいにしたいのだけど。
interface使うともちろん値型で怒られるし、
int,doubleとかも使いたいからwhere T : classはダメっぽいし

clone,parseとかその辺のあったり無かったりするものを一律に使いたいのですが。
拡張メソッドでどうにかやるとかなのかね?

713 :デフォルトの名無しさん:2013/09/20(金) 22:38:35.20
何言ってるのかよく分からんけど普通にinterfaceで制約すればいいような

714 :デフォルトの名無しさん:2013/09/20(金) 22:41:34.72
バカ発見

715 :デフォルトの名無しさん:2013/09/20(金) 23:48:47.72
>>713
欲しい機能の全てのインターフェイスを満たすような
ラッピングクラスを作るしかないのかな
それだったらコード糞長くなるけど継承でいいか
C++みたいに特殊化して楽できないってことかね?

716 :デフォルトの名無しさん:2013/09/20(金) 23:50:41.71
神はdynamicを与えたもうた

717 :デフォルトの名無しさん:2013/09/21(土) 00:12:09.47
Dynamic ダイクマ

718 :デフォルトの名無しさん:2013/09/21(土) 01:40:45.02
なかっち 動画
http://www.youtube.com/watch?v=z2qK2lhk9O0s



みんなで選ぶニコ生重大事件 2012
http://vote1.fc2.com/browse/16615334/2/
2012年 ニコ生MVP
http://blog.with2.net/vote/?m=va&id=103374&bm=
2012年ニコ生事件簿ベスト10
http://niconama.doorblog.jp/archives/21097592.html


生放送の配信者がFME切り忘れプライベートを晒す羽目に 放送後に取った行動とは?
http://getnews.jp/archives/227112
FME切り忘れた生主が放送終了後、驚愕の行動
http://niconama.doorblog.jp/archives/9369466.html
台湾誌
http://www.ettoday.net/news/20120625/64810.htm

719 :デフォルトの名無しさん:2013/09/21(土) 08:11:29.51
>値型も参照型も透過的に扱う

これがどうかと思うが

720 :デフォルトの名無しさん:2013/09/21(土) 11:24:55.80
変態的なC++の使い方をC#で使いたいならそのままC++使っとけって話だ。

721 :デフォルトの名無しさん:2013/09/21(土) 11:38:49.85
テンプレートは失敗作

722 :デフォルトの名無しさん:2013/09/21(土) 12:23:40.80
失敗作じゃねーよ
あれはSTLを作るために導入されたようなものだ

723 :デフォルトの名無しさん:2013/09/21(土) 12:25:27.90
C#はDynamicとかExpression Treeやらで動的にいろいろできるから別方向の変態
テンプレートって所詮言葉遊びだからな

724 :デフォルトの名無しさん:2013/09/21(土) 12:26:05.92
適用範囲が標準ライブラリならいいが、
おれテンプレート作られたら他人が読めない。

725 :デフォルトの名無しさん:2013/09/21(土) 12:49:48.49
ジェネリック型はテンプレートと根本的に違うぞ

http://ufcpp.net/study/csharp/sm_genericop.html

726 :デフォルトの名無しさん:2013/09/21(土) 12:59:52.99
テンプレートとオーバーロードがからんだビルドエラーは
実行時エラーでもないのに原因箇所の特定に苦労する。

727 :デフォルトの名無しさん:2013/09/21(土) 14:06:15.12
C++屋がなぜ今頃C#に乗り換えて右往左往しているのか。

728 :デフォルトの名無しさん:2013/09/21(土) 20:56:16.14
cppの時代が終わったことにようやく気が付いたんだろう

729 :デフォルトの名無しさん:2013/09/21(土) 22:12:49.58
質問ですが,指数表現で計算できるライブラリはありませんか?
var n = new Number( 6.0 , 23 );
のように,実数部と指数部を分けるようなかんじです

730 :デフォルトの名無しさん:2013/09/21(土) 22:27:00.30
http://giawa.com/tutorials/src/IEEE.cs

こんなの?

731 :デフォルトの名無しさん:2013/09/21(土) 22:36:29.50
質問お願いします
・環境
C#、ADO.NET、SQL Server 2008 R2

・質問内容
ユーザが入力した文字列をSqlParameterを使ってインサートしてるのですが、
.NETが自動的にエスケープしてくれた場合、データベース上の文字列数は
その分(エスケープのために追加した文字?)増えるのでしょうか。
例えば列の定義として
nvarchar(100)
とした場合、ユーザの入力可能文字数を100に設定するとエスケープして増えた分の
文字列数が入らなくなり、エラーになるのかどうかが気になっています。

実験する環境がないので2ちゃんの先生達どうか教えてください。

732 :デフォルトの名無しさん:2013/09/21(土) 22:40:51.56
>>730
ありがとうございます
イメージとしてはint型のような構造体で,
演算子をオーバーロードしてある感じでしたが…

これはこれで使えるのでありがたく頂戴いたします

733 :デフォルトの名無しさん:2013/09/21(土) 23:12:15.10
>>731
エスケープしたものは格納したときには元に戻ってるから
増えた分は気にするな

734 :デフォルトの名無しさん:2013/09/22(日) 01:44:07.79
>>733
さんくす

735 :デフォルトの名無しさん:2013/09/22(日) 17:23:05.20
そもそもクライアントが設定した通りに格納されているわけではないんだが

736 :デフォルトの名無しさん:2013/09/22(日) 19:08:42.39
>>727
ポインタで挫折した奴はC#も無理。

737 :デフォルトの名無しさん:2013/09/22(日) 19:10:44.56
C++で他人が読めないコードを書く奴は、C#でも他人が読めないコードを書く。

738 :デフォルトの名無しさん:2013/09/22(日) 19:24:37.64
ポインタの意味は分かるんだけど、「ポインタをどういう風に使えなければポインタを理解したことにならないのか」がわからなくて挫折しそう

739 :デフォルトの名無しさん:2013/09/22(日) 19:35:31.74
他人が読めないってのは読む側の技量が低い場合もあるしなぁ

740 :デフォルトの名無しさん:2013/09/22(日) 19:45:47.24
むしろ転職と共にCとアセンブラに退化してますわ
x86ではないけど

741 :デフォルトの名無しさん:2013/09/22(日) 20:08:29.14
>>739
他人が読めないというより、他人が読むのを拒否りたくなるコードってあるよね

742 :デフォルトの名無しさん:2013/09/22(日) 21:12:58.96
ダメなヤツってのは、プログラム言語に限らず、日本語もまともに書けなかったり。

743 :デフォルトの名無しさん:2013/09/22(日) 21:20:50.66
数学の公式でもなんでも同じだよな
覚えるだけじゃ意味なし
代入して解けるだけでも意味なし

744 :デフォルトの名無しさん:2013/09/22(日) 21:40:13.98
つていうか、ポインタが分からないってどういうこと?

745 :デフォルトの名無しさん:2013/09/23(月) 00:06:03.56
なぜ分らないのか分からない人が一定数いて
こいつらがプログラマは性格が悪いとされる理由の一つを担っている

746 :デフォルトの名無しさん:2013/09/23(月) 02:51:39.36
>>745
それプログラマに限らずにどこに行ってもいる
自分の欠点に盲目なヤツ
一番迷惑

747 :デフォルトの名無しさん:2013/09/23(月) 03:01:18.74
>>739
保守性の高いコードってのは読む技量が低い人のことを考慮して書いたコードだよ。

748 :デフォルトの名無しさん:2013/09/23(月) 03:07:07.02
>>747
ワロタ

749 :デフォルトの名無しさん:2013/09/23(月) 03:13:13.98
>>748
仕事したことないのか?

750 :デフォルトの名無しさん:2013/09/23(月) 03:23:10.07
ポインタはリンクリストを実装できれば理解してると思っていいと思う

751 :デフォルトの名無しさん:2013/09/23(月) 03:29:18.59
ポインタがリンクや参照等のアドレス先を持ってるだけのものと違うのは
型サイズを自分で持っていてアドレス計算ができるということだぞ。

p++ しても型によってアドレスの増え方が違う。

752 :デフォルトの名無しさん:2013/09/23(月) 03:33:15.69
その型を持っているのが誰かも知らないといけない

753 :デフォルトの名無しさん:2013/09/23(月) 03:44:47.36
programmers know what they are doing

754 :デフォルトの名無しさん:2013/09/23(月) 03:55:33.10
知っているのはコンパイラだよ。ポインタ自身が持ってるわけじゃないので。
そこ重要なんで。

755 :デフォルトの名無しさん:2013/09/23(月) 03:59:54.59
>>747
こういう奴ってどこにもいるよなwww

756 :デフォルトの名無しさん:2013/09/23(月) 04:43:59.07
業務系のプログラマならみなそうやがな。川俣みたいなのは嫌われる。

757 :デフォルトの名無しさん:2013/09/23(月) 05:10:05.24
こうやって名前挙げるのもよくいるよな。そんな奴知らねって

758 :デフォルトの名無しさん:2013/09/23(月) 05:17:58.80
カトラーみたいな奴なんてどこにでもいねーよ。

759 :デフォルトの名無しさん:2013/09/23(月) 05:59:19.97
川俣さんはこういう思想の人。
http://www.atmarkit.co.jp/fdotnet/extremecs/extremecs_01/extremecs_01_10.html

>クラスによってすべての機能と構造を作り出すOOP」を、最善にはほど遠い夢想上の"トンデモ"であるとしている。そのように主張する者たちは、技術者ではなく宗教者でしかないと見なしている。

760 :デフォルトの名無しさん:2013/09/23(月) 06:41:54.90
プロジェクト人員の標準レベルをどこに置くかで良いコードの定義も変わってくる
素人と大差ない新米が沢山居るならベタに冗長で非効率なコードを書いた方がいいし
全員がそれなりの技術者ならパターンなどを使い簡潔に書いた方が読みやすい

761 :デフォルトの名無しさん:2013/09/23(月) 09:04:48.00
>>746
誤解されてると思うけど、教える側が「教わる側がなぜ理解できないのか」理解できないという話だぞ
プログラマの成長曲線って極端なんて感覚が共有出来てないんだよね

「理解できないことが不思議」とのたまう奴が一定数個のスレにもいるだろ
傍から見ると超不遜だよ

762 :デフォルトの名無しさん:2013/09/23(月) 09:09:44.52
理解出来ないのが不思議だわ
本買って二時間くらいかけて読めば分かる内容なのにわかりませんとかふざけてる

763 :デフォルトの名無しさん:2013/09/23(月) 09:36:35.13
本買って2時間とか長すぎだろ
30分で十分だわ

764 :デフォルトの名無しさん:2013/09/23(月) 09:36:36.19
なんて言われようとCOBOLとJAVAは全然分りませんと言ってる。

765 :デフォルトの名無しさん:2013/09/23(月) 09:38:34.90
自分が理解した経緯って結構忘れてるし、
それが相手に通じるかも分からんからね。
教えるってのは理解したとは次元の違う話だと思う。

766 :デフォルトの名無しさん:2013/09/23(月) 09:40:49.24
>>763
速読スキルは誰もが持ってるわけではない
500ページ前後を30分は訓練しなきゃ無理
2時間なら標準的な大卒なら可能に

767 :デフォルトの名無しさん:2013/09/23(月) 09:42:12.75
馬鹿を装わないと馬鹿の尻拭いばかりさせられる。
火消し担当にさせられるようならさっさと転職するべき。

768 :デフォルトの名無しさん:2013/09/23(月) 09:44:43.07
まず本って前提がアレ

769 :デフォルトの名無しさん:2013/09/23(月) 09:49:21.36
俺の場合、Cの前にアセンブラやっていたから
ポインタは書き方を覚えたって感覚だったな

770 :デフォルトの名無しさん:2013/09/23(月) 09:51:37.96
習うより慣れろ

771 :デフォルトの名無しさん:2013/09/23(月) 10:02:41.21
理系にとって文系がなぜ数学が理解できないのかほんと分らないから
馬鹿だからで片付けるなんてふつう。それを性格が悪いと言われもな。

やっぱ分らない奴が馬鹿なんだろう。
馬鹿であることが欠点なのになんで教える側の欠点になんだよ?ふざけんな。

772 :デフォルトの名無しさん:2013/09/23(月) 10:06:27.57
本当に性格悪いな

773 :デフォルトの名無しさん:2013/09/23(月) 10:07:44.98
出来の悪い新人が教える方が下手とか言い出したら即放置だよ

774 :デフォルトの名無しさん:2013/09/23(月) 10:08:51.45
モヒカンは直裁に伝えるのが美徳なんでね。

775 :デフォルトの名無しさん:2013/09/23(月) 10:09:51.40
そもそも何故わからないかなんて答えはひとつしかないんだよな
勉強してないから
それだけなのに当人でなくあまつさえ教える方に責任を押し付けようとするあたり精神が小学生で止まってるゆとり世代らしいわ

776 :デフォルトの名無しさん:2013/09/23(月) 10:11:57.27
才能無い奴を篩ってやってんだよ
言わせんな恥ずかしい

777 :デフォルトの名無しさん:2013/09/23(月) 10:14:23.51
わらわらと沸いて来たな
とりあえず性格悪いといわれてカチンとくるくらいの心は持ち合わせてるようだし
今後に期待してこの辺にしておくよ

778 :デフォルトの名無しさん:2013/09/23(月) 10:21:02.86
こんなのきちんと教わらなくてもやってるうちになんとなく理解できるもんだからね
プログラミングを教えるのは優秀な奴でも相当難しいけど習得するのは簡単
教えるのが上手いと言われるためには文系をわかった気にさせる例え話のテクニックが大切

779 :デフォルトの名無しさん:2013/09/23(月) 10:21:41.73
馬鹿ほどすぐ人格攻撃をする。 >>772 が証左。
自分が馬鹿だと認めたくないから人のせいにして安心する。
だから努力もしない。文系のよくあるパターンじゃないか。

780 :デフォルトの名無しさん:2013/09/23(月) 10:24:12.95
むしろ文系の方が教えるのは上手なんだがな

781 :デフォルトの名無しさん:2013/09/23(月) 10:28:34.06
古典の先生はいつも何言ってるか分らなかった。教え方が下手なんだと思う。

782 :デフォルトの名無しさん:2013/09/23(月) 10:30:23.44
771によると分からない奴が馬鹿だそうだ

783 :デフォルトの名無しさん:2013/09/23(月) 10:33:31.33
>>780
ITは理系の方が入りやすいから、同じ会社なら文系のほうが地頭の良い奴が多くなりやすい

784 :デフォルトの名無しさん:2013/09/23(月) 10:35:21.59
772によると古典の先生の性格が悪いんだそうだ

785 :デフォルトの名無しさん:2013/09/23(月) 10:37:40.57
この業界は文系のほうが有資格者率高いわな。

786 :デフォルトの名無しさん:2013/09/23(月) 10:40:35.99
わからない人にわかるように教えるのも一つの才能。そういう才能がある人は教師や講師として対価を得ることができる
それができない人は別にそれでいいと思う。後輩に頼られない先輩として職人気質を通せばいいと思うよ

787 :デフォルトの名無しさん:2013/09/23(月) 10:40:37.69
ITに行く理系は落ちこぼれだがITに行く文系は比較的頭良い奴だからな
同じ理屈で理系の中でも情報系じゃない方が頭良かったりするし

788 :デフォルトの名無しさん:2013/09/23(月) 10:44:50.78
わからない奴って基本、分ろうとする気がない奴だからな。
教える側がなんでこいつのモチベーション管理までしなきゃいけないんだって話。

789 :デフォルトの名無しさん:2013/09/23(月) 10:48:52.67
外資は理系の修士ばっかだったぞ。

790 :デフォルトの名無しさん:2013/09/23(月) 10:50:02.59
>>788
何らかの理由で相手に物事を教える義務が生じた場合はモチベーション管理も義務に含まれるぞ
「後輩が理解する気がないんで後輩の知識が不十分なのは俺のせいじゃありません」なんて言ったら出世はできない

791 :デフォルトの名無しさん:2013/09/23(月) 10:59:37.61
こっちのモチを下げるようなことを平気で押し付けつける会社ならさっさと転職するだけ。

792 :デフォルトの名無しさん:2013/09/23(月) 11:10:55.03
理系、文系で不毛なカテゴライズして争うのはやめろ
文系ってのが現状勉強しない奴の冤罪付になっていて困るわ
ゲームやマンガばかり読んで何もスキルの無い奴を文系とは呼ばない

793 :デフォルトの名無しさん:2013/09/23(月) 11:16:07.76
こんにちはマイコンというマンガを読んでプログラミングを覚えました!

794 :デフォルトの名無しさん:2013/09/23(月) 13:06:23.89
>>766
そもそも速読で頭の回転まで速くなるわけじゃないからw
速読が役立つのは基本的に娯楽系の頭を使う必要がない文章だけ。

795 :デフォルトの名無しさん:2013/09/23(月) 13:21:49.15
理解できないできないって言ってるのは、頭が悪いか理解する気がないだけ。努力が足りない。
理解できないのが理解できないって言ってるのは、単なるアスペ。自分基準でしか考えられないから。
って感じだと思うわ

796 :デフォルトの名無しさん:2013/09/23(月) 13:25:37.22
>>787
その傾向は確かにある
ITの部分だけプログラマに置きかえればねw
まあ本当はプログラマって言ってももちろんピンキリだけども。

元の話に戻ると、ポインタ本の前橋って人が書いてる通り、少なくともCに関する限り
Cのポインタ関連の構文がうんこなだけで、ポインタの概念そのものは本来猿でも分かる話だよね。

まあその猿でも分かるはずのポインタの概念(あと再帰呼び出しとかね)の段階でつまづく人も
いるけど、そういう人はそもそもプログラマに向いてないわけで論外。

797 :デフォルトの名無しさん:2013/09/23(月) 13:40:01.26
最初にCやらせるからポインタで詰まるんだよ
上にもいたけどアセンブラ先にやればいい

798 :デフォルトの名無しさん:2013/09/23(月) 13:46:23.67
ポインタを理解しないといけないっていう風潮が痛い。ポインタに執着してるのは学生ぐらいだろw

799 :デフォルトの名無しさん:2013/09/23(月) 13:59:08.11
>>798
そうじゃないよ。
ポインタごとき理解できないようじゃ話にならない、そういう話だから

800 :デフォルトの名無しさん:2013/09/23(月) 13:59:35.47
>>795
理解できないのが理解できない人を勘違いしてるおまえがアスペ。

801 :デフォルトの名無しさん:2013/09/23(月) 14:05:17.75
>>795
アスペを多用する奴はアスペだと思っていい。

802 :デフォルトの名無しさん:2013/09/23(月) 14:06:38.64
馬鹿にしてるとかでなく、本当に知能が足りないのもいるから。
努力厨はこれだから困る。

803 :デフォルトの名無しさん:2013/09/23(月) 14:43:43.12
死ね

804 :デフォルトの名無しさん:2013/09/23(月) 14:51:45.52
このスレ定期的に荒れるNE!

805 :デフォルトの名無しさん:2013/09/23(月) 14:54:51.38
いまだに>>70が連投荒らししてるからな

806 :デフォルトの名無しさん:2013/09/23(月) 14:56:09.79
まぁ、俺から見ればおまえらは平等に等しく無能だから
あんまりいがみ合うなよ(w
俺くらいになると、無能な奴らを見下したりはしないんだな
馬鹿な奴を排除したら回りに誰もいなくなるだろ(w

807 :デフォルトの名無しさん:2013/09/23(月) 14:57:07.27
またマルチスレッドは簡単厨が復活してたのか。

今度はポインタは簡単って主張なの?

808 :デフォルトの名無しさん:2013/09/23(月) 14:59:13.30
馬鹿が排除されるはずが俺も一緒に排除されちゃったでござる、の巻

809 :デフォルトの名無しさん:2013/09/23(月) 15:01:34.97
ポインタの説明にCPUやアセンブラの説明はいらないと説教されるぞw

810 :デフォルトの名無しさん:2013/09/23(月) 15:03:23.73
>>807
他人のことを心配するより、その被害妄想傾向持ちのご自分のアスペ脳の心配をしたら?
まあそれが出来ないからアスペ脳なんでしょうけど

どうでもいいけど、非同期が難しいなんていってたらストアアプリ作れないんだけどw

811 :デフォルトの名無しさん:2013/09/23(月) 15:05:35.21
>>809
ポインタそのものは一応抽象的な概念だから、CPUやアセンブラの知識なんていらないよ。
ただ具体論は抽象論より理解が早いって意味で、知ってた方が話が早いだけ。

812 :デフォルトの名無しさん:2013/09/23(月) 15:14:07.45
>Cにポインタが存在する理由は効率上の問題である。
>元々UNIXを記述するシステム用言語として開発されたCは、
>アセンブラに可能な操作のほぼ全てを行える必要があった。

813 :デフォルトの名無しさん:2013/09/23(月) 15:14:57.54
知らない人からアスペ認定されました。

814 :デフォルトの名無しさん:2013/09/23(月) 15:16:43.61
>>813
アスペ認定は知らない人からされるもの
傍目八目と言って、本人や身近な人より無関係な第三者の方が良く分かる

815 :デフォルトの名無しさん:2013/09/23(月) 15:17:34.68
どうでもいいけど、非同期が難しいなんていってたらストアアプリ作れないんだけどw

816 :デフォルトの名無しさん:2013/09/23(月) 15:21:22.78
4.5からAsyncが揃って非同期が作りやすくなっただろ?

817 :デフォルトの名無しさん:2013/09/23(月) 15:22:15.01
>>812
だがCではそれ(インダイレクトアドレッシング)をポインタという一段抽象度が高い
概念に置き換えているわけ。

818 :デフォルトの名無しさん:2013/09/23(月) 15:25:42.83
Q:なんでポインタが必要なのですか?
A:アセンブラで可能な操作のほぼ全て使えるようにするためです。

Q:なんでi++みたいな書き方するんですか? i = i + 1じゃダメなんですか?
A:アセンブラに+1だけする専用のインクリメント命令があるからです。

Q:なんで& | みたいなビット演算子があるんですか?
A:アセンブラにビット演算子命令があるからです。

Q:もうアセンブラだけでいいんじゃないですか?
A:そのとおりです。C言語はただのラッパー言語です。

819 :デフォルトの名無しさん:2013/09/23(月) 15:27:03.18
じゃあアセンブラで再帰呼び出し書いてみなw

820 :デフォルトの名無しさん:2013/09/23(月) 15:36:41.61
なんで再帰なんだ?
ふつうにcallしたら戻り先はpushされとるがな。

821 :デフォルトの名無しさん:2013/09/23(月) 15:39:12.06
再帰の説明にCPUやアセンブラの知識なんていらないと説教されるぞ。

822 :デフォルトの名無しさん:2013/09/23(月) 15:49:19.62
どうでもいいけど、再帰呼び出しが難しいなんていってたらストアアプリ作れないんだけどw

823 :デフォルトの名無しさん:2013/09/23(月) 16:01:34.89
ストアアプリの承認を受けたがアウト食らった
理由はある局面で負荷が大きすぎるとか
耳を疑ったがマジ顔で言われてもうアホかと
同じロジックでのiOS版ではAppleに一発合格だったのに
これじゃStore潰れるね

824 :デフォルトの名無しさん:2013/09/23(月) 16:24:20.69
再帰を使う場面がない

825 :デフォルトの名無しさん:2013/09/23(月) 16:29:10.95
無限階層を掘り下げて処理するケースなんて頻繁にあるけどな
ディレクトリ処理とか
紹介者関係処理とか
ネズトイビジョンとか

どんだけ受注のレパートリーが狭い、つーか業務体系が定型化してるのか知らんが

826 :デフォルトの名無しさん:2013/09/23(月) 16:29:47.42
>>825
無限に掘り下げたら停まるからそんなプログラムかかない

827 :デフォルトの名無しさん:2013/09/23(月) 16:33:55.13
何階層まで降りたらスタック不足になるっていう判断は事前にもしくは動的に簡単にできるのかな?
できるなら再帰も使えるんだけど。

828 :デフォルトの名無しさん:2013/09/23(月) 16:33:57.81
http://msdn.microsoft.com/ja-jp/library/windows/apps/hh694083.aspx
>3.2 アプリは応答を停止したり、予期せず終了したり、プログラミング エラーを含んでいてはならない

>3.8 アプリは、低電力コンピューターで基本的なパフォーマンス基準を満たす必要がある
>?アプリは 5 秒以内に起動する必要がある
>?アプリの中断は 2 秒以内に実行できる必要がある

これぐらいしかないと思うが。どんなプログラム書いたんだよ?

829 :デフォルトの名無しさん:2013/09/23(月) 16:35:27.26
アセンブラだと再帰呼び出しが難しいと勘違いしてる奴がいる聞いて

830 :デフォルトの名無しさん:2013/09/23(月) 16:45:42.82
今は0.1秒ルールってないのか?

831 :デフォルトの名無しさん:2013/09/23(月) 16:48:45.49
>>819
汎用機とか昔のミニコンの話?
今時の CPU なら、普通に自分を呼び出すだけだろ。

832 :デフォルトの名無しさん:2013/09/23(月) 16:49:30.70
フックの300msルールじゃなくて?

833 :デフォルトの名無しさん:2013/09/23(月) 16:52:28.91
>>827
動的にざっくりなら、ローカル変数のアドレスの変化見ればわかるでしょ。

834 :デフォルトの名無しさん:2013/09/23(月) 16:54:50.47
>>833
もうちょっと具体的に。マイコンのアセンブラだったらそれでいけるけど、C#でそんなところまでいける?

835 :デフォルトの名無しさん:2013/09/23(月) 16:57:35.80
今時再帰=スタックメモリー仕様という固定概念を持ち続けてる奴がいるのな
タブレットではPushやPOPでさえ内部多重レジスタを優先使う偉大なのに

836 :デフォルトの名無しさん:2013/09/23(月) 17:00:14.33
タブレットをCPUと勘違いしてる馬鹿がいると聞いて

837 :デフォルトの名無しさん:2013/09/23(月) 17:01:18.57
>>835
それじゃメモリの限り無限に再帰できるの?

838 :デフォルトの名無しさん:2013/09/23(月) 17:03:27.43
>>837
無限のはずないだろw
優先してアクセス速度の速い内部レジスタを使用し足りなくなったらメモリー使用だろ?
RISCでは常識だけどな

839 :デフォルトの名無しさん:2013/09/23(月) 17:05:24.66
ARMライセンスドの9A-e5だと4096階層まで4バイトスタックレジスタを使用できるが無限には程遠い

840 :デフォルトの名無しさん:2013/09/23(月) 17:05:48.87
>>838
それじゃ結局どれだけいけるか判断はどうするのさ

841 :デフォルトの名無しさん:2013/09/23(月) 17:07:12.96
>>840
Riscの場合、コンパイラが確定するんじゃなかったっけ?

842 :デフォルトの名無しさん:2013/09/23(月) 17:12:16.74
>>834
ああ、すまん、上でアセンブラ云々書いてたから C のノリで書いてたわ。

なのでちょっとググってみたら...
http://msdn.microsoft.com/ja-jp/library/zcbcf4ta.aspx
普通にあるじゃねーか。

843 :デフォルトの名無しさん:2013/09/23(月) 17:13:52.98
>>842
アドレスからスタック不足をどう予測するのはどうするのか?という問題がw

844 :デフォルトの名無しさん:2013/09/23(月) 17:17:46.34
コンパイラの技術が20年前からまったく進歩してないという考えをもつ人って老害プログラマ?

845 :デフォルトの名無しさん:2013/09/23(月) 17:19:12.28
今一番熱いのはJITコンパイラだろ
使い道がなかなか見つからないマルチコアCPUの有り余る性能を活かす一つの方法

846 :デフォルトの名無しさん:2013/09/23(月) 17:19:22.39
特に.netのJITコンパイラは驚異的なコードを作るよなw
アセンブラレベルで見てる奴がどんだけいるか知らんが

847 :デフォルトの名無しさん:2013/09/23(月) 17:21:15.29
>>846
最適化もすごいけどスタックに関しても浅い階層だとキャッシュを考慮したコードを吐くよな。
ランタイムのCPUの内部構造まで考慮するとか信じられない。

848 :デフォルトの名無しさん:2013/09/23(月) 17:21:45.36
>>846
.net4.0でそれが裏目に出て4.5で最適化の多くが無効化され、
リプレースされたいうのはこのスレでは既出。

849 :デフォルトの名無しさん:2013/09/23(月) 17:22:03.85
最近のCPUのキャッシュメモリのザイズガ異常

850 :デフォルトの名無しさん:2013/09/23(月) 17:23:45.63
>>848
まーたまた御冗談をw

851 :デフォルトの名無しさん:2013/09/23(月) 17:25:27.67
ここまでのまとめ

・ポインタを理解するならCPUやアセンブラしろ
・無限に再帰することは当たり前に無理
・今の時代は再帰にスタックなんか使わない
・どれだけ再帰できるかはシラネ
・タブレットはCPU

852 :デフォルトの名無しさん:2013/09/23(月) 17:27:59.61
ARM厨は相変わらず酷いな。頓珍漢甚だしい。

853 :デフォルトの名無しさん:2013/09/23(月) 17:32:06.64
Q:アドレスからスタック不足をどう予測するのはどうするのか?
A:デバッガでメモリウインドウを見ろ。足りないならスレッド生成時にスタックサイズを指定しろ。

854 :デフォルトの名無しさん:2013/09/23(月) 17:42:07.34
No results found for "内部多重レジスタ".

855 :デフォルトの名無しさん:2013/09/23(月) 17:43:04.07
ループは無限に回せる
再帰は回数制限がある
再帰はアルゴリズムを見なおしてループ化したほうがいい

856 :デフォルトの名無しさん:2013/09/23(月) 17:43:06.99
>>848
それってJITの問題では?混同させんなアホ

>>854
まんま検索するドアホ(ワロスw

857 :デフォルトの名無しさん:2013/09/23(月) 17:49:50.58
で遅くなると。なんか再帰に関して勘違いしてる馬鹿が多いな。すべてタブレット厨?

858 :デフォルトの名無しさん:2013/09/23(月) 17:54:58.19
>>843
スタックサイズは設定できるでしょ?

859 :デフォルトの名無しさん:2013/09/23(月) 17:58:51.21
>>856
> まんま検索するドアホ(ワロスw

内部多重レジスタ君が笑われてるんだが、ひょっとして気づいてないのか? (w

860 :デフォルトの名無しさん:2013/09/23(月) 18:04:40.47
>タブレットではPushやPOPでさえ内部多重レジスタを優先使う偉大なのに

2.7. 多重レジスタロード/ストア命令
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204ij/Cihdecig.html

これのことかな?

861 :デフォルトの名無しさん:2013/09/23(月) 18:09:36.84
レジスタ版のmemcpyか

862 :デフォルトの名無しさん:2013/09/23(月) 18:16:09.05
IPC稼ぐためでcallでstack積まないとか全然関係ないしほんと謎だ。

>内部多重レジスタ

863 :デフォルトの名無しさん:2013/09/23(月) 18:20:34.58
>>831
アセンブラだと、たとえ柔軟なアドレッシングが可能なCPUであっても
高級言語でいう自動変数を可読的に書くのが難しいんだよ。

何にも知らない人みたいだから言っても伝わらないと思うけど。

864 :デフォルトの名無しさん:2013/09/23(月) 18:21:30.33
C#とJavaではC#のほうが年収高いんですが
これってC#が難しいから勉強する人がいないため競争率が低いんでしょうか?

865 :デフォルトの名無しさん:2013/09/23(月) 18:22:12.69
なんでここってIDでないの?

866 :デフォルトの名無しさん:2013/09/23(月) 18:24:06.45
自演が捗るように

867 :デフォルトの名無しさん:2013/09/23(月) 18:28:25.42
>>863
Q:なんでC言語にはpush、pop命令がないんですか?
A:あります。{ がpushで、} がpopです。

868 :デフォルトの名無しさん:2013/09/23(月) 18:34:36.27
>>859
ちょっと笑いすぎでしょ?w

869 :デフォルトの名無しさん:2013/09/23(月) 18:34:55.75
>>863
push、popは簡単だし、それに可読性がないと言われもなぁ。
単にアセンブラで書いたことないだけでしょ?

870 :デフォルトの名無しさん:2013/09/23(月) 18:36:44.63
タブレット君。内部多重レジスタさんについてちゃんと説明しなさい。

871 :デフォルトの名無しさん:2013/09/23(月) 18:39:56.85
>>863
スタックフレームとか知らない人?
86 なら bp, 68K なら a6 相対で十分でしょ。
masm とかはローカル変数用の構文もあったし。
そのあとの CPU はアセンブラで書いたことないからよく知らないけど、似たような機能はあるでしょ。

まあ、GCC 並みの最適化までやろうとすると、スタックフレーム作らないとか、複数の関数呼び出しの引数領域の巻き戻しをまとめてやったりするから、確かに面倒だけど、そう言うことを言いたいのか?

872 :デフォルトの名無しさん:2013/09/23(月) 19:01:15.35
>>868
ごめんごめん、まんま検索〜とかでどや顔する奴久々に見たから、ついつい突っ込んじゃったよ (w

873 :デフォルトの名無しさん:2013/09/23(月) 19:03:59.97
マルチスレッド簡単君ガンバレ

874 :デフォルトの名無しさん:2013/09/23(月) 19:10:57.93
またCPU、アセンブラロートルの圧勝。

875 :デフォルトの名無しさん:2013/09/23(月) 19:11:14.55
俺がアセンブラ使ってたときは普通の変数も自分で定義させられてたな。どこのアドレスはどの変数っ。
当然マクロなんて未対応

876 :デフォルトの名無しさん:2013/09/23(月) 19:35:29.54
だって組み込み用Cだとスタック領域がちょこっとしかなくてローカル変数が定義出来なくて
全部グローバル変数でやるしかない場合もある

877 :デフォルトの名無しさん:2013/09/23(月) 19:38:54.99
だからってC#で再帰使うなループで書けとか頓珍漢なこと言われてもな。

878 :デフォルトの名無しさん:2013/09/23(月) 19:40:05.64
俺は再起使いまくりだなー

879 :デフォルトの名無しさん:2013/09/23(月) 19:42:36.99
呼び出し回数が対数オーダーになる場合は再起でもいいけどね
O(N)はむりだわ

880 :デフォルトの名無しさん:2013/09/23(月) 19:45:45.23
実際のとこどうなの?何も考えずに使いまくっていいものなの?
教科書に書かれてるのって現実には使えない内容が多いから混乱する

881 :デフォルトの名無しさん:2013/09/23(月) 19:56:14.69
>>877
いや、ループで普通に書けるなら再帰なんか使うなよ...

882 :デフォルトの名無しさん:2013/09/23(月) 20:04:22.11
あのな、トラブルが起きてから相談してくれ

883 :デフォルトの名無しさん:2013/09/23(月) 20:06:13.16
>>881
ケースバイケース。

パフォーマンスが重要でなくリソースが十分あって(C#が動くような環境なら
これは問題ないと思うけど)より可読的になるなら積極的に再帰を使う理由になる。

884 :デフォルトの名無しさん:2013/09/23(月) 20:08:17.38
あとな、このお兄さん達はフレーム問題を起こすAI
(今回も特殊な事例を持ち出して心配するべきか否か揉めてる)
だから、状況はなるべく指定した上で質問しなさい

885 :デフォルトの名無しさん:2013/09/23(月) 20:18:13.64
>>883
> より可読的になるなら積極的に再帰を使う理由になる。

だから、「普通に書けるなら」って書いてあるんだが

886 :デフォルトの名無しさん:2013/09/23(月) 20:20:40.58
>>885
非論理的だね。
BがAより「より○○」だとしても、Aが○○でないとは限らない。

887 :デフォルトの名無しさん:2013/09/23(月) 20:22:10.48
ポインタわからんやつ馬鹿にしたら今時Cなんか使わないしとか返されたが
そいつはC#やJavaでも参照で散々やらかしてるクズだった

888 :デフォルトの名無しさん:2013/09/23(月) 20:23:35.43
>高級言語でいう自動変数を可読的に書くのが難しいんだよ。

アセンデラのスタックで挫折したんだな、これ。
こんな基本で挫折したら、再帰はおろかサブルーチンの呼び出しすらままならんだろう。
やたらにCPU、アセンブラでの説明を拒否する理由はこれか。

889 :デフォルトの名無しさん:2013/09/23(月) 20:25:30.06
自分の見知ったものが全てだと思ってる時点でそんな奴評価に値しない

890 :デフォルトの名無しさん:2013/09/23(月) 20:28:20.65
>>886
具体的に書いてみて。

891 :デフォルトの名無しさん:2013/09/23(月) 20:29:04.24
>>881
再帰とループじゃ再帰のほうが速度速いんだけど?
ヒープとスタックじゃ速度が全然違う。

これをアセンブラで説明するとだな・・・・怒られるから止めとく

892 :デフォルトの名無しさん:2013/09/23(月) 20:31:54.39
>>888
お前馬鹿だろ

893 :デフォルトの名無しさん:2013/09/23(月) 20:34:16.22
>>891
> ヒープとスタックじゃ速度が全然違う。

ヒープ?
ループにヒープは必須じゃないぞ?

894 :デフォルトの名無しさん:2013/09/23(月) 20:35:45.04
>>892
じゃあ難しい理由って何なの?w

895 :デフォルトの名無しさん:2013/09/23(月) 20:36:05.41
>>892
人にをバカだと言うなら、どう難しいか書かないと、単なる可哀想な人になってるぞ (w

896 :デフォルトの名無しさん:2013/09/23(月) 20:39:28.64
>>893
どこにローカル変数を退避させんだ?
再帰の場合はスタックに積まれる。
ループの場合は積まれないから自分でどこかに退避させないと上書きされる。

もしかして再帰アルゴリズムが何か知らない人?

897 :デフォルトの名無しさん:2013/09/23(月) 20:50:46.27
>>896
アルゴリズムはなにも書いてないからローカル変数使うと限ってるわけじゃないでしょ?
たとえば、階乗の計算とかね。
ローカル変数使う場合でも、配列でスタックシミュレートすることもできるんだしね。

898 :デフォルトの名無しさん:2013/09/23(月) 20:57:48.64
>配列でスタックシミュレート
再帰アルゴリズムで簡単に実装できるのになぜそこまで複雑に実装するのだ。
どんだけ再帰に恨みがあるんだ。

899 :デフォルトの名無しさん:2013/09/23(月) 21:04:09.61
アセンブラ、ポインタ、スタック、再帰、おまえ挫折しまくりだな。
理解できない人を理解できないのはアスペというわけだ。

900 :デフォルトの名無しさん:2013/09/23(月) 21:08:52.15
スタックなんて普通リストで作るだろ
後ろに入れて、後ろから取り出すだけ
再帰の出番なんかねーよ

901 :デフォルトの名無しさん:2013/09/23(月) 21:18:41.40
お、今回の叩き会場はここか?

902 :デフォルトの名無しさん:2013/09/23(月) 21:39:16.87
ここって初心者用のすれですよね?

903 :デフォルトの名無しさん:2013/09/23(月) 21:40:00.87
末尾再帰の最適化はx64(64bit)向けだけ
実行時に最適化しますとかやめて、
コンパイル時にtailcallしてほしい

904 :デフォルトの名無しさん:2013/09/23(月) 21:44:34.14
>>900
素直にStack<T>を使え

905 :デフォルトの名無しさん:2013/09/23(月) 21:49:50.26
>>904
StackTの中で再帰してるんだ!なんてイミフなこと言い出しそうな雰囲気だったからなw

906 :デフォルトの名無しさん:2013/09/23(月) 21:55:29.52
まさかとは思いますが、この「雰囲気」とは、あなたの想像上の存在にすぎないのではないでしょうか

907 :デフォルトの名無しさん:2013/09/23(月) 22:00:25.27
とりあえずC#のコード書いて説明してくれ

908 :デフォルトの名無しさん:2013/09/23(月) 22:07:16.31
>>898
> 再帰アルゴリズムで簡単に実装できる

>>905 じゃないけど、ひょっとしてスタックの実装に再帰が必要とか思ってる? (w

配列でスタックと書いてあるのはは、ヒープとかバカなこと書いてるから、ヒープが必要ない例としてあげてるだけだよ。

909 :デフォルトの名無しさん:2013/09/23(月) 22:10:09.40
>>894-895
難しいなんて書いてないから。
「可読的に書くのが」難しいと書いてる。
教科書的な簡単なサンプルを書くだけなら誰でも書ける。

インデックス(オフセット)付きのインダイレクトアドレッシングが使えるCPUであっても
オフセットをラベルに割り当てるディレクティブとか、スタックから確保するトータルサイズを
割り当てるディレクティブとか、ルーチンの頭と最後でSPを操作するコードとか、
処理の本質と無関係の部分に手間が掛かる上に間違いを犯しやすい。

910 :デフォルトの名無しさん:2013/09/23(月) 22:16:05.93
C#で上司のアルハラをやめさせるアプリを作れますか?

911 :デフォルトの名無しさん:2013/09/23(月) 22:17:21.93
バックドア仕掛けといて客のシステムぶっ壊せばいい
それどころじゃなくなる

912 :デフォルトの名無しさん:2013/09/23(月) 22:26:02.82
>>908
再帰アルゴリズムにはスタックが必要だと何度言ったら。
そもそもスタックする必要があるから再帰使うんだよ。
それを無理してループで書けとかもうね。

913 :デフォルトの名無しさん:2013/09/23(月) 22:28:06.33
スタックのデータ構造は必要でもCLRのスタックが必要とは限らない

914 :デフォルトの名無しさん:2013/09/23(月) 22:29:13.42
このスレの時間を止めるアプリは作れますかねC#で

915 :デフォルトの名無しさん:2013/09/23(月) 22:30:09.23
どんな話題になっても>>70は香ばしいな

916 :デフォルトの名無しさん:2013/09/23(月) 22:30:09.92
2ch落とすのは可能なんじゃないの

917 :デフォルトの名無しさん:2013/09/23(月) 22:32:26.35
>>915
同じ事思いつつROMってたw

918 :デフォルトの名無しさん:2013/09/23(月) 22:41:17.21
マルチスレッド簡単君また論破されてロングパスwwwww

919 :デフォルトの名無しさん:2013/09/23(月) 22:48:35.64
>>70 に論破された人って誰?w

自動変数はアセンブラで難しいの人?w
再帰はループで書けの人?w
タブレットのスタックは内部多重レジスタの人?w


毎回ロートルに論破されて馬鹿すぎでしょwww

920 :デフォルトの名無しさん:2013/09/23(月) 22:50:08.54
ロングパス続けるのはよほど悔しかったんだろうな。

921 :デフォルトの名無しさん:2013/09/23(月) 22:51:43.92
一人で草生やして哀れだな

922 :デフォルトの名無しさん:2013/09/23(月) 22:52:02.68
>>912
> 再帰アルゴリズムにはスタックが必要だと何度言ったら。

誰もそれには反論してないと思うぞ。

俺が言ってるのは...

> ループにヒープは必須じゃないぞ?

だけなんだが。

923 :デフォルトの名無しさん:2013/09/23(月) 23:02:59.55
>>922
だけと言われても再帰が必要な処理で
ヒープを使わないなら大量に面倒なコードを追加する必要がある。
しかもスタック内で収めるなら再帰が必要な処理をループ化しても無限に回せない。

>ループは無限に回せる
>再帰は回数制限がある
>再帰はアルゴリズムを見なおしてループ化したほうがいい

もう再帰をループで書く理由がなくなったね。はい論破。

924 :デフォルトの名無しさん:2013/09/23(月) 23:15:03.01
void saiki()
{
  nCount++;
  Console.WriteLine(nCount.ToString());
  saiki();
}

14212でアボン

925 :デフォルトの名無しさん:2013/09/23(月) 23:15:06.24
>>923
大量に面倒?
スタックの実装が?

まあ、人によってはそうなのかもな...

とりあえず、君が「ループにヒープは必須じゃないぞ?」には、まともにレスできないことだけはわかった (w

926 :デフォルトの名無しさん:2013/09/23(月) 23:30:41.36
再帰は静的に消費スタックが確定できる時以外使うなって言われた

927 :デフォルトの名無しさん:2013/09/23(月) 23:32:06.23
再帰は可読性が落ちるから禁止だとさ

928 :デフォルトの名無しさん:2013/09/23(月) 23:35:24.40
>>909
>オフセットをラベルに割り当てるディレクティブとか、スタックから確保するトータルサイズを
>割り当てるディレクティブとか、ルーチンの頭と最後でSPを操作するコードとか、
>処理の本質と無関係の部分に手間が掛かる上に間違いを犯しやすい。

masm なら...

main PROC NEAR
LOCAL data1:PTR SDWORD
LOCAL data2[16]:SDWORD
LOCAL daat3:DATA_TYPE

mov eax, data1
mov eax, data2[ecx*4]
...
ret

とか書けるんだが...。
もちろんローカル変数のトータルサイズの計算とか、SP の操作なんかは自動で生成 (当然、独自にも定義できるが) する。
なにか、可読性に問題あるんか?

まあアセンブラだから、間違いやすいし面倒 (=手間がかかる) とは思うが「難しい」とは思わない。

929 :デフォルトの名無しさん:2013/09/23(月) 23:39:00.67
実際アセンブル出来ないコードだしな

930 :デフォルトの名無しさん:2013/09/23(月) 23:45:59.64
ここまですべて自演
ここからもすべて自演

931 :デフォルトの名無しさん:2013/09/24(火) 00:05:37.91
>>926
これだな

932 :デフォルトの名無しさん:2013/09/24(火) 00:30:03.98
やっぱりアセンブラ必須だな。

上級者はアセンブラの会話ばっかだもんな。

933 :デフォルトの名無しさん:2013/09/24(火) 00:36:59.58
ディクトリ階層が1万もあるわけないし確定しなくてもざっくりで余裕でフローしない。
デフォでスタック1MBだぞ。ファミコンの2KBのRAMですら困らなかったんだぞ。余裕、余裕。

934 :デフォルトの名無しさん:2013/09/24(火) 00:54:07.69
>>928
正直MASMはやったことないw

負け惜しみだけど、そんなの構造化アセンブラの機能の範疇を超えて
MASMっていう名前の高級言語にしか見えない。

935 :デフォルトの名無しさん:2013/09/24(火) 00:55:26.97
>>933

936 :デフォルトの名無しさん:2013/09/24(火) 00:56:12.51
スタックで挫折したらとてもとても

937 :デフォルトの名無しさん:2013/09/24(火) 00:58:35.86
>>934
だな。あれは高級言語

938 :デフォルトの名無しさん:2013/09/24(火) 01:15:35.63
俺のオツムはFIFOバッファ。1個入れたら何か忘れる。

939 :デフォルトの名無しさん:2013/09/24(火) 01:30:28.05
>>933
お前にエンベのアプリは書けない。

940 :デフォルトの名無しさん:2013/09/24(火) 06:41:32.28
ディレクトリツリーをループで書く?

ないでしょ!!!!

941 :デフォルトの名無しさん:2013/09/24(火) 07:22:22.01
再帰は柔軟性ないんだよな
例えばボードゲームの計算する時にあるノードでの計算結果、別のノード以下の計算が不要になったという場合
ヒープにリスト確保してスタックとして使う場合は不要になったノードをリストから検索して削除するだけで済む
これを再帰でやろうとしたら面倒だしコードも少し汚くなる

942 :デフォルトの名無しさん:2013/09/24(火) 08:20:34.54
既に結果は既にリストになってるので再帰で書く馬鹿はいない。
そもそも結果はリストに追加するだけスタックである必要もない。速度優先でDictionay<>使う。
手の探索はツリーなので再帰で行っても何の問題もない。深さも大したことがい。将棋でもたかが数十。
問題は莫大な数の計算結果の保存方法と保存場所。

943 :デフォルトの名無しさん:2013/09/24(火) 08:22:47.57
>>941
> ノードをリストから検索して削除する

この時点で、単純なスタックはダメでしょ。
なにしたいのかちゃんと読んでないけど、再帰とリストは排他じゃないから両方使えばいいんじゃね?

944 :デフォルトの名無しさん:2013/09/24(火) 09:25:25.27
なにこの流れwww

俺ってつくづく燃料投下の天才だと思うわwww

945 :デフォルトの名無しさん:2013/09/24(火) 09:38:19.30
再帰はループ厨馬鹿すぎwwww

946 :デフォルトの名無しさん:2013/09/24(火) 09:40:20.03
.netで再帰は避けるべき
Cとは違うんだから

947 :デフォルトの名無しさん:2013/09/24(火) 10:50:12.87
>>934
masm はやり過ぎだけど、実際使うと便利だよ。
やっぱり、proc の入口/出口の処理は (難しくはないけど) 面倒だから。

948 :デフォルトの名無しさん:2013/09/24(火) 10:52:51.97
MS-DOSからMASMが削除された時点でMASMは終わってんだよ。

949 :デフォルトの名無しさん:2013/09/24(火) 10:56:02.30
IL直接書く奴が現れて一言

950 :デフォルトの名無しさん:2013/09/24(火) 11:13:43.39
マクロアセンブラ
Z80で使ったっけな

マクロでアセンブラを構造化できることを知って目から鱗だった
しかしすぐにC言語に目を奪われたな
Turbo Cとか懐かしい
printfのライブラリがVRAM直接書きなのでMSCより重宝した
あのころにくらべたら今のVisual Studioって一体何よ?
信じらんない

951 :デフォルトの名無しさん:2013/09/24(火) 13:27:19.82
元々アセンブラは構造化プログラミングに向いた言語。

952 :デフォルトの名無しさん:2013/09/24(火) 13:35:56.29
アセンブラは変数が使えないからいちいちメモリからロードして処理してから
また書き戻すという手間が必要だし、スコープなんかないから寿命すら分からない

だからバグが出たら大変だから、本当に速度が要求される場所だけに使うように
なったし、今はcompiler intrinsicsを使うし

x64ではインラインアセンブラが禁止された
http://www.officedaytime.com/tips/asm64/caution.html

まあこうやってリンクしろとそういう事だな
http://www.officedaytime.com/tips/asm64/project.html

953 :デフォルトの名無しさん:2013/09/24(火) 14:01:30.06
>>951
ええっ!

954 :デフォルトの名無しさん:2013/09/24(火) 15:01:35.13
どこかで見たんだが、アルゴリズム的に
ループで書ける処理はすべて再帰でも書ける。だが再帰で書ける処理すべてはループでは書けない
というのを見たことあるんだ
誰かこれ論破してくれ

955 :デフォルトの名無しさん:2013/09/24(火) 15:03:23.09
再帰はスタックの自動実装
スタックが使えればループでも書ける

956 :デフォルトの名無しさん:2013/09/24(火) 15:04:57.58
俺ツリー構造は再帰でしか検索ようせんわw

957 :デフォルトの名無しさん:2013/09/24(火) 15:24:39.85
>>955
これで終わり

958 :デフォルトの名無しさん:2013/09/24(火) 15:36:15.59
再帰で書くのが一般的だが、ループでも書けるのはクイックソートとか

959 :デフォルトの名無しさん:2013/09/24(火) 15:38:08.08
クイックソート書くのは学生だけ

960 :デフォルトの名無しさん:2013/09/24(火) 15:42:32.94
バブルソートしか書けない…

961 :デフォルトの名無しさん:2013/09/24(火) 15:48:19.97
再帰好きなら関数型言語のスレいくといいよ
.NETつながりでF#とかどう?
関数型でも回数の上限が予想できない場合は
末尾再帰になるように気をつけるけどね

962 :デフォルトの名無しさん:2013/09/24(火) 17:38:41.36
再帰をスタックつかって書き直すのか

963 :デフォルトの名無しさん:2013/09/24(火) 17:50:55.66
再帰って佐伯

964 :デフォルトの名無しさん:2013/09/24(火) 17:55:51.44
同じアルゴリズムを使って再帰→ループで書き直すのはただの馬鹿

965 :デフォルトの名無しさん:2013/09/24(火) 17:56:56.71
VS2008です。
Windowsフォームでsplitを使おうとしたら'System.Array'に'Split'の定義が含まれておらず、型'System.Array'の最初の引数を受け付ける拡張メソッドが見つかりませんでした。usingディレクティブまたはアセンブリ参照が不足しています。と出ます。

どうすればいいのでしょうか?

966 :デフォルトの名無しさん:2013/09/24(火) 17:59:56.24
配列にSplitなんて存在してないから使えない

967 :デフォルトの名無しさん:2013/09/24(火) 18:11:48.53
>>966
ありがとうございました。

968 :デフォルトの名無しさん:2013/09/24(火) 18:25:15.28
VB6かよ?w

969 :デフォルトの名無しさん:2013/09/24(火) 21:16:26.64
javascriptの可能性も

970 :デフォルトの名無しさん:2013/09/25(水) 08:09:46.64
>>964
再帰はコーディングルールで禁止なんじゃね

971 :デフォルトの名無しさん:2013/09/25(水) 10:18:41.76
再帰を使うとStoreアプリの承認でアウトになる

972 :デフォルトの名無しさん:2013/09/25(水) 11:28:57.80
マジかよ。再帰厨涙目

973 :デフォルトの名無しさん:2013/09/25(水) 11:50:46.22
再帰なしでどうやってディレクトリ検索やるのさ

974 :デフォルトの名無しさん:2013/09/25(水) 12:08:42.52
>>973
そんなことも思いつかないのか。絶望的だな

975 :デフォルトの名無しさん:2013/09/25(水) 12:10:23.04
本気で言ってんならセンスねーよ。死ね。
釣りで言ってんならいいご趣味をお持ちだな。死ね。

976 :デフォルトの名無しさん:2013/09/25(水) 12:15:11.90
たとえばディレクトリツリーのファイル一覧のリストをループで書いてみて。

977 :デフォルトの名無しさん:2013/09/25(水) 12:16:45.70
お前さ
ツリー
探索
スタック
キュー
深さ優先
幅優先
とかでググってくたばれ

978 :デフォルトの名無しさん:2013/09/25(水) 12:21:19.66
再帰が非承認ってのは、再帰のデメリット的にありそうだし、
再帰なしでフォルダ検索なんてDirectory.EnumerateFiles使えばいいし、
どれが釣りなのか分からねーーー

979 :デフォルトの名無しさん:2013/09/25(水) 12:22:12.24
質問です。
ディレクトリツリーのコンテンツ一覧のリストをループで書く方法がわかりません。
先輩に再帰は禁止だと言われたので困ってます。

980 :デフォルトの名無しさん:2013/09/25(水) 12:24:09.75
>Directory.EnumerateFiles
これ中、再帰だろ、ボケ。

981 :デフォルトの名無しさん:2013/09/25(水) 12:26:03.11
何がなんだかわからん
http://ideone.com/QLaHfu

982 :デフォルトの名無しさん:2013/09/25(水) 12:27:48.62
>>980
次スレよろしくぅー

983 :デフォルトの名無しさん:2013/09/25(水) 12:31:14.09
新手の能力者がこの場を混乱させようとしてるんだろ。

984 :デフォルトの名無しさん:2013/09/25(水) 12:31:43.03
>>980
だったらTopDirectoryOnly指定にして、取得したフォルダに対して取得したい階層分だけループすりゃいいじゃん
ってか内部で再帰してるならきっとTopDirectoryOnly以外は使用禁止になってるんだろうなw

985 :デフォルトの名無しさん:2013/09/25(水) 12:33:05.50
内部の再帰はおkに決まってるだろJK

986 :デフォルトの名無しさん:2013/09/25(水) 12:34:24.95
MSすら再帰をふつうに使ってるのにおまえらときたら

しかもループで書いてみてといったら再帰使ってるライブラリ使うのはOKとかアホすぎ。

987 :デフォルトの名無しさん:2013/09/25(水) 12:35:50.55
>>984
はい、ループでバグ仕様がでしましたよ〜

988 :デフォルトの名無しさん:2013/09/25(水) 12:37:09.65
次スレ
http://toro.2ch.net/test/read.cgi/tech/1272608727/

989 :デフォルトの名無しさん:2013/09/25(水) 12:41:11.30
>>987
階層指定がバグ扱いなら取り切るまで無限ループすりゃいい。再帰よりは深く潜れるはずだぞ

990 :デフォルトの名無しさん:2013/09/25(水) 12:41:33.73
スタッククラス使ったら出来るけど可成りメンドイな

991 :デフォルトの名無しさん:2013/09/25(水) 12:42:47.29
どうもバグに気づいてないらしい。

992 :デフォルトの名無しさん:2013/09/25(水) 12:43:58.70
この程度がめんどくてよく生きてられるね
別に煽りでなく純粋にそう思う

993 :デフォルトの名無しさん:2013/09/25(水) 12:45:03.86
>>992
ならサクっとループで書いてみて。面倒じゃないんでしょ?

994 :デフォルトの名無しさん:2013/09/25(水) 12:47:50.70
猿が人間様を試すなよw

995 :デフォルトの名無しさん:2013/09/25(水) 12:49:14.90
>>992
EnumerateFiles で見つかるのは名前だけだろ
そんな単純なもの以外に対応させるためには使えない
EnumerateFiles 使わずに書いてみてよ

996 :デフォルトの名無しさん:2013/09/25(水) 12:56:55.47
ループで書けばokとか豪語してたのに自分で書けないって・・・

997 :デフォルトの名無しさん:2013/09/25(水) 13:07:20.93
マルチスレッド簡単君?

998 :990:2013/09/25(水) 13:13:29.18
1.スタックにルートオブジェクトをプッシュする
2.ループ開始、スタックからポップする。なければ終了
3.ビンゴならリターン
4.親と判断できたら子供を全部スタックにプッシュする
5.ループで2に戻る

コーディングはいいけどデバッグまでメンドイからアルゴリズムだけ

999 :デフォルトの名無しさん:2013/09/25(水) 14:15:13.39
>>997
答えが出てるのにメクラ君の間違いだろうw

1000 :デフォルトの名無しさん:2013/09/25(水) 14:16:20.93
>>995
割と本気で頭大丈夫ですか?
生憎医者に掛かってないから紹介はできないが

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

199 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)