- 1 名前:デフォルトの名無しさん [2010/03/20(土) 02:15:38 ]
- このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 >>980を踏んだ人は新スレを建てて下さい。 >>980が無理な場合、話し合って新スレを建てる人を決めて下さい。 ふらっとC#,C♯,C#(初心者用) Part56 pc12.2ch.net/test/read.cgi/tech/1267348401/ 関連スレ C#, C♯, C#相談室 Part55(実質56) pc12.2ch.net/test/read.cgi/tech/1260111240/1 VB.NET質問スレ(Part33) pc12.2ch.net/test/read.cgi/tech/1263738929/1 C++/CLI part3 pc12.2ch.net/test/read.cgi/tech/1206447234/1
- 101 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:39:33 ]
- 今日はアンチMSのスレが伸びてないと思ったが、こっちで喧嘩してたのかw
- 102 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:40:21 ]
- へー
- 103 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:41:08 ]
- VIPで死ね
- 104 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:41:14 ]
- 反論したかったら、BackgroundWorkerの致命的な欠点を言わないとな
簡単なことにThreadを生で使った方が問題引き起こすと思うけどな
- 105 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:41:22 ]
- その「簡単な方法」では搭載しきれない仕様が降ってきたときに
ちょっと苦労するか、沢山苦労するか、逃げ出すか、の違いだしょ? いいじゃん、選ぶのは自分なのだし。
- 106 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:42:42 ]
- 俺>>86じゃないけど
Suspendできないのがちょっと面倒だったカモ
- 107 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:43:04 ]
- カモネ
- 108 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:43:39 ]
- かーもね
- 109 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:44:04 ]
- 灰
- 110 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:45:01 ]
- >>65
使えるものは使う てひとはそれでいいじゃん まぁ同じくらいのもの実装しても大してめんどくさいものではないけどね
- 111 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:45:08 ]
- >>77>>100
ディスプレイとキーボードと部屋掃除しろ
- 112 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:46:47 ]
- 勢いが板でトップになってるから何事かと思ったら
- 113 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:48:06 ]
- >>110
いいじゃんね
- 114 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:49:05 ]
- 2番目に勢いのある
【超高速】C/C++に代わる低級言語を開発したい の倍いってるじゃねぇかwwwww
- 115 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:53:14 ]
- お前ら落ち着いて落ち着いて死ねなの〜
- 116 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:57:26 ]
- すべてRuby厨の仕業
- 117 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 23:00:16 ]
- まんまと釣られたということだよ。
言わせんな恥ずかしい。
- 118 名前:デフォルトの名無しさん [2010/03/20(土) 23:01:05 ]
- ID欲しいよね・・・
- 119 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 23:02:19 ]
- ID出たら真っ赤になってそうだなぁ
- 120 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 23:08:36 ]
- 書いてんの2人くらいだろ
- 121 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 23:10:26 ]
- >>120
の会話ですら赤字になってる人の発言かもしれないと疑ってしまう自分
- 122 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 23:14:40 ]
- Dr林にご相談ください
- 123 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 23:16:16 ]
- >>115の発言が最近やったエロゲキャラのしゃべり方と似ててちょっと燃えた
いや萌えた
- 124 名前:デフォルトの名無しさん [2010/03/21(日) 00:02:57 ]
- あ
- 125 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 00:58:47 ]
- (´・ω・`)ショボーン
- 126 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 01:16:21 ]
- スレッドプールで十分なら極力そちらを使うべきではあるが、
専用スレッドを用意するメリットがあるなら使えばいいだけの話だろ 因みに、ThreadPool、Delegate.BeginInvoke、BackgroundWorker、 Forms以外のTimer、多くのコンポーネントの非同期操作(〜Async)などの スレッドプールを使っているものなら多用しても問題はない 逆に、なんでもかんでもThreadを使うのは論外 >>106 中断のための機構は自前で用意すべきもの Threadならイベントオブジェクト使って適当な間隔でチェックするだけだし、 ThreadPoolなら処理を細切れにしてキューに入れるタイミングを制御する
- 127 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 03:13:28 ]
- Thread明示的に使ったってどうせ同じようなことを自分で実装するんだから、
あるもの使う方が手っ取り早いだろう。 それにいちいちスレッド作るよりThreadPool使う方が一般に望ましい(常にとは言わない)のは常識。
- 128 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 03:56:43 ]
- 知識0の状態からFF11のツール作るためにC#の勉強をしたいのですが
参考になるサイトやこれは買っとけ的な本は何ですか?
- 129 名前:デフォルトの名無しさん [2010/03/21(日) 03:58:53 ]
- 言語はどうにでもなるだろ
周辺ツール作る場合はゲーム側の独自仕様をどれだけ集められるかだと思うよ
- 130 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 04:22:07 ]
- FF14にしましょう
- 131 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 05:56:19 ]
- windows formのスレがないのでここで聞いても良いでしょうか。
formでGUIを作っています。 アプリケーション全体からメッセージを表示させるtextboxを追加したいです。 コンソールのプログラムでいう標準出力です。 どうやConcoleクラスがそれに値するようなのですが、これをどうtextboxに表示するのかわからないです。 textBox1.Text = System.Console.Out.ToString(); としても、textboxには「System.IO.TextWriter+SyncTextWriter」と表示されるので違うようです。 何かヒントをください
- 132 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 06:19:39 ]
- やーだお
- 133 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 06:23:23 ]
- うーむ
なんでこの手の話題は繰り返すんだろうw スレッド、デリゲート関連のサンプルコード codepad.org/xOdJsJie これの応用でできるんじゃないかな?
- 134 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 06:24:45 ]
- Console使うなら、
TextWriterから派生させたクラスを作って、 WriteメソッドとかをオーバーライドしてTextBoxに出力するようにして、 Console.SetOutで設定すればいいけど。
- 135 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 09:03:12 ]
- >>133
誰に言ってんの??
- 136 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 09:05:50 ]
- >>133-134
ありがとうございます。 単語を調べて一つ一つ確かめてみます
- 137 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 09:09:55 ]
- >>86
お前素人だろ
- 138 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 09:15:19 ]
- なんでBackroundWorkerをそんなに毛嫌いするのかわからん。
素人専用とでも思いこんでるのか? 素人に使いやすい設計になってるのは事実だが、 別にやりたいことにあってれば普通に使えばいいじゃん。 普通に使えるのにわざわざ自分で同じような処理を実装して、 でそれがThread明示的に作ってとか、マイナスにしかなってない。
- 139 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 09:20:00 ]
- 用途に合ってなければ自分で制御するだけ、
誰も常にBackroundWorkerがいいなんて言ってないのにな。 まあそれでもThreadを自分で作ることはあまりないが。
- 140 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 10:14:40 ]
- まあそれでもThreadを自分で作ることはあまりないが。
- 141 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 10:16:41 ]
- 今時代はスレッドプールですよ
- 142 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 10:31:31 ]
- スレッド温泉でゆっくりしたいなあ
- 143 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 10:32:07 ]
- スレッドプールって何?
- 144 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 11:01:50 ]
- 次はParallel.Forですね
簡単といってもBackgroundWorkerとは違ってこちらはアカデミックな感じだが
- 145 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 11:02:22 ]
- ThreadPool
- 146 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 11:08:50 ]
- >>134
できました。 継承してオーバーライドって便利ですね。 勉強になりました。
- 147 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 12:50:25 ]
- まだ4.0の勉強してないんだけどParallel.Forとかって別CPUで処理させるんだよね?
いくつかParallel.Forで処理を同時にやってすべてが終わったかどうかのチェックはフラグかなんか持って 自分で管理しないとだめなのかな?
- 148 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 12:56:39 ]
- parallel.forとかすげーな
もうC++の時代は終わってるな
- 149 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 13:03:03 ]
- 単純に適材適所でしょ
windowsなんかC/C++がなきゃ動かないわけだし
- 150 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 13:03:54 ]
- まぁGUIクライアントを書く言語としてはC#の方が向いてるね
- 151 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 13:22:21 ]
- >>147
並列ライブラリは直接使うとよほど単純なパターンを除くと非常にややこしいので、 Parallel Linqから使ったほうが簡単。 並列処理の結果を待つかどうかオプションで指定できる。
- 152 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 13:26:30 ]
- >>151
そんなの知ってるよ
- 153 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 13:27:50 ]
- >>151
なるほど しかし、すげぇな・・・ 4.0いろいろ贅沢な機能付きすぎだろ
- 154 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 13:29:06 ]
- >>152
自己紹介乙
- 155 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 13:32:13 ]
- 並列ライブラリのforを本気で使おうと思ったらやたらと引数が多くなる。
1〜10までを足すだけ。 int sum = 0; Parallel.For(1, 10+1, option, () => 0, (i, parallelLoopState, s) => s + i, s => Interlocked.Add(ref sum, s) ); Console.WriteLine("sum = {0}", sum);
- 156 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 13:34:33 ]
- そんなの使わずマルチスレッドつかえよ
Parallel.Forなんて大して使えん ループ内がそれそれ独立していなければ無理
- 157 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 13:37:16 ]
- ((;゚Д゚)) 決めつけ無理……………!!!
- 158 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 13:37:34 ]
- 結構使いにくそうだ…
でも・・・実装したからには何か目的が・・・・メリットがあるんだよな?
- 159 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 13:38:35 ]
- Parallelライブラリはコア数に合わせて並列数を調整してくれるところにある。
自分でスレッド作って調整するのは大変だぞ?
- 160 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 13:39:16 ]
- そうだね。
- 161 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 13:42:37 ]
- うん
- 162 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 13:50:06 ]
- >>155
そんな並列の意味が一切無い例出してどうすんのさ
- 163 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 13:52:50 ]
- >>162
お前に言われる筋合いはないから
- 164 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 13:53:04 ]
- もうちょっとMPIの様に透過的にだな・・
- 165 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 14:12:13 ]
- 【春祭り 】また割れ厨のスクショと個人情報が晒されてるぞ避難所5
jbbs.livedoor.jp/bbs/read.cgi/news/4988/1269124859/ ICO - 国際著作権機構 ttp://warezer.net/search/user/3201 割れてる人は気おつけて
- 166 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 14:42:40 ]
- >>164
パラレルライブラリはOpenMP型で、MPI型のはAxum。 ttp://msdn.microsoft.com/en-us/devlabs/dd795202.aspx まだ研究段階っぽい。最終的にはC#に成果を吸収という流れだろうか。
- 167 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 15:21:20 ]
- >>147
ちゃんと Join する。 スレッドいっぱいたつけど、全部のタスクが終わるまで待ってくれる。 >>148 同時に C++ 向けにも並列処理ライブラリが追加されるけどね、VS 2010。 C++ の時代、分野次第だなぁ。 10年は前に終わってるとこもあるし、あと10年は使わなきゃいけないとこあるし。 >>155 そんな処理は Parallel LINQ の方がいいな。 あと、集計部分(+= するとこ)は並列化してもおいしくない。 >>164 pragma だらけってのは、標準化がどうこう言われてしまう C++ の苦肉の策だろ。
- 168 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 16:08:18 ]
- >>167
ほほぅ キッチリ便利にはやってくれそうだなぁ… 3つの画像を同時に処理して終わったらその結果を判定して処理 とかやってるから単純なマルチスレッドでやるよりイイかもしれねぇ。。。 ちょっと期待したい
- 169 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 16:34:39 ]
- for文の前に属性書けたら楽そうだけど
[Parallel 4] for(){ } まぁ文法的に無理ぽ
- 170 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 16:38:36 ]
- ParallelOptionsのMaxDegreeOfParallelismが必要だね。
1コアの環境でoptionなしで使うとスレッドは使わずにメインスレッドで処理してしまう。 ParallelOptions option = new ParallelOptions() { MaxDegreeOfParallelism = 4 }; Parallel.Invoke(option, () => Worker("aaa"), () => Worker("bbb"), () => Worker("ccc"), () => Worker("ddd"));
- 171 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 16:48:43 ]
- 並列処理とか……
ここは本当に初心者スレなのか?w
- 172 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 16:50:44 ]
- いいんじゃね?
- 173 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 16:56:30 ]
- まあ、Parallel.ForはちゃんとJoinしてくれるの?とか、結構初心者らしい質問な気もするが。
- 174 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 20:11:36 ]
- 並列処理といってもこのていどは初級レベルだろう
まあ普通は初心者は並列処理を勉強しないものだけど、 勉強してみれば、このくらいは理解できるレベルだと思う
- 175 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 20:36:37 ]
- だね
- 176 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 20:39:48 ]
- 並列処理の使い方を理解できるというより、
並列処理の必要性を理解する、ことになるのでしょうね。 必要と思えれば頑張れる、そういうもんでしょ、言語習得ってさ。
- 177 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 20:41:33 ]
- そして別スレッドからGUIコントロールにアクセスして怒られるんですね
- 178 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 20:48:12 ]
- もう・・・ぷんぷんっ
- 179 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 20:58:05 ]
- backgroundWorkerは自由度が低いから使いづらい
- 180 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 21:05:14 ]
- いつまでそのネタ引っ張るつもりだ
- 181 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 21:16:46 ]
- >>179
初心者ではなく低級者の発言ですね
- 182 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 23:34:27 ]
- >>170
何の意味があるのそれ?
- 183 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 00:34:37 ]
- 質問します。
DataGridViewで特定のCellから値を参照したいんですけど 方法がわかりません。お願いします。
- 184 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 00:36:04 ]
- DatagridView.Rows(0).Cells(カラム名).Value
だけじゃね? さすがにそれはヘルプ見てみようぜ それとも何か勘違いしてるかな?
- 185 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 01:08:49 ]
- メソッドに戻り値つけないとどういう処理しているかわからなくなるね
とくにグローバル変数をどうにかしているときとか
- 186 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 01:14:00 ]
- C#スレでグローバル変数とな!?
シングルトンのクラスに詰め込むの?
- 187 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 01:15:17 ]
- フィールド変数だらう
- 188 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 03:31:48 ]
- SlimDX/Direct3Dで描画してるウィンドウの中にWPFでコントロールを描画して使いたいんですが、
いいサンプルはありませんでしょうか。
- 189 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 03:59:50 ]
- このスレレベル高すぎて何いってるのか全然わからないですがさらに初心者向けのスレってないんですか?
FF11でツールを作ろうと思ってます。
- 190 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 04:12:21 ]
- 今のFF11ってツールまで作れるんだな…。
- 191 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 07:09:13 ]
- そういやFF11ってなんか言語っぽいもんな
0xFF11みたいな
- 192 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 09:49:37 ]
- ボットでも作りたいのかね
- 193 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 13:39:33 ]
- string型の配列aがnullでも空でもないことを判定するプログラムを考えています。
if ( a != null ) { if ( a.Length > 0 ) { (処理) } } これ以上にスマートな記述方法は存在しますか?
- 194 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 13:41:26 ]
- >>193
string.IsNullEmpty()
- 195 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 13:43:39 ]
- それ、配列にも使えるのけ?
- 196 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 13:45:57 ]
- 無理だな
ネストが深くなるのが嫌だから&&でつなぐ
- 197 名前:193 mailto:sage [2010/03/22(月) 13:49:55 ]
- >>194-195
そうなんです。String.IsNullEmptyOrEmptyは文字列には使えますが文字列の配列には使えませんでして・・ >>196 たしかにネストが深くなるのはイヤなんですが、もし&&でつないでしまうとnullだった場合に a.Legth のところで例外が発生してしまうんです。 だから泣く泣くネストを深くして対処しました。
- 198 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 13:52:31 ]
- ショートサーキットを使うように、|| でつなげばいいだろ。
- 199 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 13:55:07 ]
- & じゃなくて && だよ?
- 200 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 13:58:02 ]
- &&で繋ぐと、結果が偽になった時点でそれ以降は評価されない
- 201 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 14:03:15 ]
- >>200
じゃあ&&でいいじゃないか。変数aがnullなら、他のことをやっても仕方がない。
|

|