- 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
- 2 名前:デフォルトの名無しさん [2010/03/20(土) 02:20:14 ]
- コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
codepad.org/ コードを貼り付けてRun codeのチェックをはずしてsubmitボタンを押すと コードを鯖側にアップして専用のアドレスが発行されます。
- 3 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 10:36:08 ]
- OrderedDictionary
- 4 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 17:31:58 ]
- >>1
関連スレの更新忘れ C#, C♯, C#相談室 Part55 (実質57) pc12.2ch.net/test/read.cgi/tech/1265283175/ 紛らわしい。いつになったら正しいスレ番になるのかと
- 5 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 17:46:26 ]
- メンバ変数の値が変更されたらイベント処理をするようなのをしてみたい
TextChangedイベントみたいな感じ
- 6 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 17:59:35 ]
- .....というチラ裏?
- 7 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 18:04:01 ]
- してみたいのでさせてください
- 8 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 18:06:17 ]
- どうぞ
- 9 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 18:09:43 ]
- デリゲート、マルチスレッド、イベント
ごちゃごちゃになってどれ使えばできるのかよくわかりません 教えて
- 10 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 18:12:30 ]
- いいよ
- 11 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 18:16:47 ]
- イベントとデリゲートの関係は、イベントを宣言するときに簡略記法使わずに
addアクセサとremoveアクセサを自分で実装してみるとよく理解できる
- 12 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 18:21:33 ]
- >>11
イベントは呼び出し側は追加と削除しかできない そういう違いはだいたいわかったんだけど いざ応用しようとするとまったくわからない ある変数の値をフォームに表示するために 値が変更されると値を表示するメソッドを毎回書いていたんですけど もしかしたら、TextChangedのようにデリゲートを使えば わざわざ表示メソッドを毎回書かなくてもいいんじゃないかと気づいて 調べていたんですが、むじゅかしくて・・・
- 13 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 18:26:45 ]
- そういうのはINotifyPropertyChangedを実装してバインドしてしまえば更新処理不要
- 14 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 18:47:33 ]
- レベルが高すぎて理解できません
- 15 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 18:51:43 ]
- あきらめろよ。
- 16 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 19:14:08 ]
- >>12
普通にプロパティじゃだめなの?
- 17 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 19:19:36 ]
- >>16
そういえばプロパティで出来そうですね でもプロパティをそういうふうに使ってもいいんですか? それとクラス内部で使うだけの変数なので プロパティをするというのも違うような やはりイベントだと思うんですよ
- 18 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 19:21:00 ]
- イベントを使うにしても結局プロパティで地道にチェックしてイベント発生させるんだよ
- 19 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 19:41:12 ]
- イベントでそれっぽいの実現してるソースみたけど
結局別のクラスのプロパティでメソッド呼び出して メインクラスのイベントハンドラ呼び出しているだけですね ってことはプロパティにそのまま書けばいいだけか・・・
- 20 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 19:45:16 ]
- しかし、>>9のレスにマルチスレッドが出ているのは不思議だと思った。
他の二つはわかるけど
- 21 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 19:46:01 ]
- >>19
あまり良い設計じゃないな
- 22 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 19:49:15 ]
- イベントとデリゲートってどんな関係があるの?
- 23 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 19:50:09 ]
- デリゲート経由でイベント呼び出しなんじゃね?
- 24 名前:デフォルトの名無しさん [2010/03/20(土) 19:52:04 ]
- windowsのイベントってOSが呼び出しする物なので非同期
クリックされたとかイベントが起きたときに特定の関数を呼んでもらった方が効率がいい 呼んでもらいたい関数を教える際に使うのがデリゲート Cだとコールバックとか言ってた
- 25 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 19:52:58 ]
- イベントは
・イベントハンドラを登録するメソッド ・イベントハンドラを削除するメソッド をひとまとめにしたもの。プロパティみたいなもん。 addとremoveを省略してevent EventHandler Hoge; の形式で宣言する場合は 自動実装プロパティと同じでデリゲートやメソッドが自動生成される。
- 26 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 19:54:48 ]
- まあ別にしらなくてもぷろぐらむは作れるからいいか
- 27 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 19:55:23 ]
- デリゲートの説明で一番わかりやすかったのが
デリゲートはメソッドをオブジェクトのように使うもの そう考えるとすごくわかりやすかった でも、クラス使えばできることをなぜわざわざするのかというと やっぱり、マルチスレッドかイベントぐらいしか使い道ないような感じ
- 28 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 20:00:29 ]
- >>27
はじめは>マルチスレッドかイベントぐらいしか使い道ない と想定されてたから マルチキャストとか変なところがあるけど最近はラムダ式などで積極的に活用されてる
- 29 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 20:02:38 ]
- ひょっとしてサブスレッドからメインスレッドに処理の終了を
知らせることができるのか!!
- 30 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 20:02:50 ]
- >はじめは>マルチスレッドかイベントぐらいしか使い道ない と想定されてたから
だから、前にも書いたがそれはない。 寝ぼけたことをどや顔で繰り返さないように。
- 31 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 20:04:31 ]
- >>29
とりあえずバックグラウンドワーカーコントロールでも使ってこい
- 32 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 20:08:05 ]
- 俺も初心者だけど、このスレのレベルにワロタ
- 33 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 20:11:29 ]
- >>31
使ってみた!すげーーー! いつの間にこんなコントロールが!
- 34 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 20:16:03 ]
- と思ったらわざとだろお前wwしらじらしいww
- 35 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 20:17:52 ]
- わざとじゃねーよw
スレッド作ってメインスレッドからタイマーで見てたよw
- 36 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 20:19:37 ]
- >>35
スレッドからスレッド名前空間のタイマ? それって二重になってるんじゃ・・・・
- 37 名前:デフォルトの名無しさん [2010/03/20(土) 20:29:38 ]
- この間どっちかのスレでこんなのもあったな
codepad.org/akzX4pKs
- 38 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 20:39:06 ]
- で、結局、変数の値が変更されたら
自動でform.Textの値を変更してくれるのは どう書けばいいの?
- 39 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 20:46:52 ]
- 今まで出た感じで好きなように
- 40 名前:デフォルトの名無しさん [2010/03/20(土) 20:59:27 ]
- textboxだっけ?
あれって中身が変更された〜とかそんなイベントなかったっけ? それで監視するしかないよね
- 41 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:02:44 ]
- なんでもバインドしたけりゃWPFだな
- 42 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:06:03 ]
- >>40
メンバ変数つってんだろ textbox関係ないだろ
- 43 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:08:56 ]
- そろそろ死ねよ。
- 44 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:16:26 ]
- >>43
お前は寂しい人間だな 昨日から用もないのにこのスレに来ては煽るだけ お前の人生が不幸だからって他人に八つ当たりするな
- 45 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:23:09 ]
- やばい。できた
public partial class Form1 : Form { int hoge = 0; int i = 0; public Form1() { InitializeComponent(); } private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e) { textBox1.Text = hoge.ToString(); } private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { backgroundWorker1.ReportProgress(i++); System.Threading.Thread.Sleep(2000); hoge = 2; backgroundWorker1.ReportProgress(i++); } private void button1_Click(object sender, EventArgs e) { backgroundWorker1.RunWorkerAsync(); } private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { } private void Form1_Load(object sender, EventArgs e) { backgroundWorker1.WorkerReportsProgress = true; } }
- 46 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:24:50 ]
- >>45
>>2使えよw
- 47 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:25:40 ]
- 昨日は来てねーよ。
頭おかしいんじゃね?
- 48 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:25:58 ]
- >>46
おぉ! すげーーー!
- 49 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:26:45 ]
- 何がしたいんだよ。このコード。
- 50 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:27:44 ]
- 初めての非同期で感動するコードだろ
- 51 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:27:46 ]
- 素直にプロパティでチェックしてイベント発行するべき
わざわざスレッド使うとか初心者スレで間違ったやり方出すなよ
- 52 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:30:26 ]
- 初めてのマルチスレッドか。
今度は何か意味のあるコードで頼む。
- 53 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:31:03 ]
- あれ? この場合、Invokeしないでいいの?
- 54 名前:デフォルトの名無しさん [2010/03/20(土) 21:31:04 ]
- >>37で十分だろ
- 55 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:32:57 ]
- >>53
そういうの意識しなくていいから初心者にもやさしい
- 56 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:33:14 ]
- 素直なつくりにできないのって大概は仕様や設計が悪いんじゃないの?
- 57 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:33:17 ]
- うん
- 58 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:34:24 ]
- へー。使ったことなかったけど、BackgroundWorkerって便利なんだな。
- 59 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:40:17 ]
- ああ間違えた
これテンプレにしとけ 毎度応えるの面倒 Form間のデータの受け渡しサンプルコード codepad.org/akzX4pKs スレッド、デリゲート関連のサンプルコード codepad.org/xOdJsJie Radiko codepad.org/Vvwba6du
- 60 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:42:51 ]
- >>58
まあな
- 61 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:44:10 ]
- hogeを他で使うならlock大丈夫か
- 62 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:45:44 ]
- >>38
- 63 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:47:13 ]
- テンプレにはいらんだろ。
- 64 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 21:53:47 ]
- >>62
変数の値が変わるのはサブスレッド側でわかるんだから >>45でできるやん。 俺って天才かも。
- 65 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:01:19 ]
- BackgroundWorkerなんか便利なものか。
スレッドがよく分かってない奴でもなんとなく使える、という以上のメリット(本当にメリットか?) は何もないだろう
- 66 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:03:25 ]
- 超メリットだよ
ただ馬鹿に仕事取られるということでもあるけどなw
- 67 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:05:20 ]
- >>65
時代遅れになっていくやつの典型的な反応だな
- 68 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:07:40 ]
- アセンブラ厨と言ってることが変わらないよね
BackgroundWorkerをC#に、Threadをアセンブラに変えても成立してしまうw
- 69 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:15:09 ]
- >>67
むしろ、言いたくないが君のようなのがいわゆる「VB厨」の典型的反応でしょ。 BackgroundWorkerって典型的な「VB厨」向けツールだよ。 彼らは言うんだよ。「便利なものは便利に使わせていただく」ってw お前便利だから使ってるわけじゃなくて、それしか使えないんじゃねえの、って。
- 70 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:16:05 ]
- >>69
はいはいパンチカードに穴あける作業に戻ってねオジーチャン
- 71 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:17:39 ]
- C++やJavaでもマルチスレッドプログラミングしてたけど
BackgroundWorkerは便利だよ
- 72 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:17:47 ]
- 年寄りはおとなしくタイプライター叩いててくれ。
- 73 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:18:55 ]
- 普通に明示的にスレッド起動した方がよほど分かりやすい、
と標準的なプログラマなら感じると思うけどね俺は。
- 74 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:19:45 ]
- 結局お前が思ってるだけじゃん。
何が標準的(キリッだってのw
- 75 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:20:17 ]
- この怒涛のレスの雨は久しぶりに見たぞwww
- 76 名前:デフォルトの名無しさん [2010/03/20(土) 22:20:20 ]
- 伸びてると思ったら・・・・
- 77 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:20:55 ]
- phpをdisってる人と同じ匂いがする
- 78 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:22:00 ]
- >>69
VBが出た時、beginner's toyと言われていたけど、今や、どれもこれも真似してるよな そういうハッカー気どってVB馬鹿にするのは、COMコンポーネントをCでストレスなく作れるようになってから言ってくれ
- 79 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:22:56 ]
- わざわざ遠回りな方法をとるアテクシカコイイみたいな。
スレッド使いこなしてデキるプログラマ目指そう! モテカワマルチスレッドの嗜み方教えちゃいます特集号 みたいな。
- 80 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:23:59 ]
- >>78
VBを馬鹿にしてないって。 「VB厨」を馬鹿にしてるの。だからわざわざカギ括弧付けてるんじゃないの。
- 81 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:24:11 ]
- おっさん調子乗ってんなよ^^
- 82 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:25:41 ]
- とはいっても>>68を否定できないよねw
- 83 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:25:48 ]
- BackgroundWorkerがいやならC#も嫌なはず
- 84 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:26:48 ]
- >>80
じゃあさっさと>>62答えろよ
- 85 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:28:12 ]
- >>64
お前はイベントとマルチスレッドの違いもわからないカス
- 86 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:28:44 ]
- まあ御託はいいから、そんなにBackgroundWorkerが便利だと思うのなら
普通にスレッド起動した場合と比較したメリットをちゃんと言ってみろって。 言えやしないだろうそんなもの。 無い者を言えるわけがない。 さすがにいくら面の皮が厚い馬鹿でも「理屈が分かってない馬鹿なボキュにも使えることがメリット」とは 言いづらいもんねw
- 87 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:29:21 ]
- まあまあ喧嘩しないしない
使いたいの使いなさい それより仕事をしなさい
- 88 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:30:24 ]
- >>86
早く>>68を否定してみろよ 否定できないならC#使うのやめて機械語に帰れ
- 89 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:32:54 ]
- >>86
単にフレームとして一連の処理の流れが実装してあることがメリットだろう。 IListそのものがListより便利だとは言わないでしょ。 実装が無いんだから。
- 90 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:34:04 ]
- >>86
理屈がわからなければを繰り返していくと、最後は量子力学か神学までいくから理屈がわかってないバカ議論は不毛 もう化石だな
- 91 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:34:23 ]
- >>86
簡単に使える、ってのは大きなメリットだろ。
- 92 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:35:03 ]
- >>86
馬鹿でも使えるのは超メリットだと初めに言ったはずだが そこから否定されても困るね 何言ってんのお前
- 93 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:35:04 ]
- >>88
意味不明な命題を否定も肯定もしようもないと思うけど。 なぜBackgroundWorkerがC#に、スレッド起動の方法がアセンブリ言語に対応するのか サッパリ理解できん。 馬鹿の議論はいつもこれだが、馬鹿のお前さんの思いつきを俺が共有してるわけないじゃん。 これがセカイ系か。
- 94 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:35:39 ]
- 簡単だから嫌いってもうね。
自分は特別な人間だと思ってるやつの典型だね。
- 95 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:35:40 ]
- >>88-92
死ねよおめーらwww
- 96 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:36:09 ]
- ワロタ
- 97 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:37:20 ]
- 初心者向けスレで、顔真っ赤にすんなよ。
- 98 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:37:47 ]
- お前ら落ち着け
- 99 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:39:14 ]
- >>98
お前も落ち着け
- 100 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 22:39:30 ]
- こいつと同じ臭いがする。
勘違い職業マ。 678 名前:以下、名無しにかわりましてVIPがお送りします[] 投稿日:2010/02/08(月) 13:05:38.59 ID:V+MiXXPeP >>674 その手段を自分で想像出来ないヤツが結果を出せる訳無いよな >>675 いきなり素人が5つ星のフランス料理作れるとしたら、誰か経験のある人が代わりに作ってあげたキットを再利用するか、 あるいはボタンを押せば出てくる装置を使うしかない。 もともとプログラミングって、技術職の仕事だ。 みんな欲しいのは技術じゃないのかと。 結果が欲しいだけなら巷に転がってる完成品使えばいいだけ 昔も今も見よう見まねから始まるのは変わらないだろうけどな。 でもコピペは見真似にすらならね
|

|