1 名前:デフォルトの名無しさん [2010/05/16(日) 23:13:52 ] (#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。 前スレ C#, C♯, C#相談室 Part58 pc12.2ch.net/test/read.cgi/tech/1269261310/ Visual C# 2008 Express Edition 日本語版 www.microsoft.com/japan/msdn/vstudio/express/vcsharp/ その他テンプレ>>1-5 くらい
411 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 15:50:08 ] 5.5 変数参照の分割不能性 bool、char、byte、sbyte、short、ushort、uint、int、float の 各データ型および参照型の読み取りと書き込みは分割不可能です。 また、上記の型を基になる型に持つ列挙型の読み取りと書き込みも 分割不可能です。long、ulong、double、decimal などのその他の データ型、およびユーザー定義型の読み取りと書き込みは、分割不可能 であることが保証されていません。この目的で設計されたライブラリ関数を 除いて、インクリメントやデクリメントの場合などでの分割不可能な 読み取り/変更/書き込みは保証されていません。
412 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 19:34:34 ] >>411 CPUレベルではともかく、CLRレベルでは保証されてるってことか。
413 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 20:38:48 ] 32bit以上での実装を事実上想定しているわけだ。
414 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 21:36:58 ] 16ビットCPUだったらintも16ビット長じゃね? .netが16ビットでも動くかは知らんけど
415 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 21:41:29 ] intは32bitと決められている。
416 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 21:50:44 ] intが可変な言語って数えるほどしかない
417 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 21:52:51 ] CLRは32ビットプロセスなら32ビット境界に、64ビットプロセスなら64ビット境界に整列することを保証してる。 もちろんライアウトを変えた場合は別。 だから、少なくとも32ビット以下のプリミティブ型の読み書きはアトミック保障。
418 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 21:53:06 ] そういう言語では組み込み型はそのまま使わずにtypedefしてサイズを固定するという アホらしいノウハウが定着してる事実
419 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 21:53:57 ] ああ書き方おかしかった。 ライアウト→レイアウト。 で、そういうことやってない限りは保障されてる。
420 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 21:56:44 ] >>402 何のためだよw
421 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 21:58:16 ] つうわけで現実的には、32ビット以下ならvolatil変数、 32ビットを超えるものはlockするのが簡単。
422 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 22:09:14 ] ところでlongはvolatileにできないけど IntPtrや参照型のvolatileは64bitプロセスでどうなってるんだろう?
423 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 23:33:39 ] 64bit環境なら普通に問題ないだろ。
424 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 23:38:28 ] 64ビット環境では当然64ビットの読み書きは分割不可能。
425 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 23:47:07 ] x64とia64で違ったりしないのかな
426 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 01:13:50 ] 分割「不可能」って表現はどうなんだろうねえ。
427 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 01:19:47 ] atomicの定訳がないからねえ。「不可分」で良さそうなもんだが。
428 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 01:40:34 ] 相談室の方だしアトミックとだけ言っとけば通じるんじゃないか?
429 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 02:33:51 ] 今更このスレでアトミックや分割不可能の意味がわからん奴もいないと思うんだが・・・ まぁMSDNにもそう書いてあるんだし、そのままでいいんじゃないか? というか、やっぱPGて細かく突き詰めると深いよなぁ と改めて思う
430 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 11:50:42 ] なぁ、紐づく・紐付ける・紐づいたXX って英語でなんていうんだ? てか、紐づくの語源はどっから?
431 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 12:00:03 ] そんなの 関係する とかに置き換えたらいかんの? 語源はググってくれ
432 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 12:34:12 ] そう言えば、英語と1対1な用語じゃないような気がするねえ。 link,bind,relationshipのいずれかを局面に応じて使うんじゃないかな。
433 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 12:47:27 ] associateとかもあるな
434 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 18:55:47 ] A (which is) tied together with B とか
435 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 22:53:09 ] assigned とかは? 命名スレ行きかな
436 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 18:00:58 ] wiredだな
437 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 01:55:45 ] weirdとな
438 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 13:04:54 ] ttp://techbank.jp/Community/blogs/mymio/archive/2010/03/07/25216.aspx この記事の意味わかる人いる?
439 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 13:11:10 ] 確かに全くわからない new { trueValue = new BitVector32(-1), falseValue = new BitVector32(0) }と new { trueValue = new BitArray(1)[0] = true, falseValue = new BitArray(1)[0] = false } を比較したら処理速度以前に値型と参照型の違いで前者が速いに決まってる 何がしたいのかも意味不明
440 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 13:24:00 ] >new BitVector32(-1)[(int)BitFlag.TrueIndex] BitFlag.TrueIndexは0のことだから、 >new BitVector32(-1) -1じゃなくても何を渡してもたとえ0でもTrueになるしな。
441 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 13:26:43 ] >new { trueValue = new BitArray(1)[0] = true, falseValue = new BitArray(1)[0] = false } これに至ってはビットセットしてるつもりで実は取得しかしてない気がする。
442 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 13:27:44 ] Microsoft MVPかよw
443 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 13:41:36 ] >>441 逆 設定はしてるけど取得はしてない trueValueに代入されるのはリテラルのtrue
444 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 14:10:33 ] (int16)trueが1になったり-1になったりする!大発見!スイーツ(笑) ってことか?
445 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 14:16:21 ] 回数増やすと差が開くのはGCが動くからかな? なんにせよそんなBitArrayの使い方ありえない
446 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 14:30:00 ] 本人も言ってるけど、本当に > プログラミング言語論やアルゴリズムに元々興味がなかった んだろうな。
447 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 14:42:15 ] そうだとしてもこれ普通に仕事に支障が出るレベルじゃね
448 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 14:44:24 ] Console.WriteLine("BitVector32の-1: {0}", .... そりゃ何やったって-1が出るよな。
449 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 14:53:20 ] >>440 BitVector32の仕様を理解してない? インデクサの引数をマスクじゃなく インデックスだと思っているとか。
450 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 14:54:15 ] >>438 あれ? コメント消えた?
451 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 15:07:19 ] ?
452 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 15:08:41 ] 貼ったのは本人かよwwwwww
453 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 15:13:54 ] というか記事自体消えたw
454 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 15:26:45 ] 流石はMVPだな
455 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 19:55:01 ] 丸ごと消して逃げるってのは技術者の態度としては酷いなあ 別に誰だって間違いはあるんだから、素直に分かってませんでした、でいいのに。
456 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 20:05:52 ] …ほかの記事も全部巻き込んでコメント消えたな… どうなってんだ…真面目に聞いてたのに… あーあ、どうせ荒らされたからコメント停止したとか、そういうことにされてんだろうな
457 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 20:12:09 ] まあそれぐらいで許してやれよ。 打たれ強い人ばかりじゃないんだ
458 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 20:28:22 ] 誰かコメントできっついことでも書いたか? 気づいたらもう消えてたから経過が分からん、まあおそらくはそうなんだろうけど。 しかしこれじゃ記事で気になることがあってもどうしようもないな。 techbank.jp って書籍とかも出してるからそれなりに影響力ありそうなんだが… ユーザ登録して掲示板に書けってことか…面倒な…
459 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 20:59:29 ] カエル女あわれ・・・
460 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 21:38:47 ] >>458 キツいことは書かれてたね。 言葉はキツかったけど正しい指摘ではあった。 確かに誰もが打たれ強いわけじゃないってのは分かるけど 書籍出したり、MVPだったりする人間が技術的な指摘に逃げ腰ってのはダメだよ。
461 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 21:49:30 ] そのとおり。
462 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 22:39:03 ] >>460 あれ書いたの俺なんだけど、まさか丸ごと消されるとは思わなかった。 MVPだし、本出してるし、コミュニティの運営にも積極的な人みたいだから、 反論するにせよ訂正するにせよ、少なくとも真摯な態度で答えてもらえるもんだと 思っていたんだよね。 まあ、確かに言葉はきつかったけど、まともな質問に上から目線で適当な回答をしてるのが 腹立たしかったもんでね。 残念だね。
463 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 22:46:10 ] RSSには BitVector32 vs BitArray を掲載しました ってのが残ってるけど、どんな中身だったのか分からない どっかに中身のっけてくれ
464 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 22:47:34 ] MVP事務局に、報告しといた方がいいと思う。
465 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 22:49:57 ] まゆみちゃーん
466 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 22:50:22 ] >>463 Googleのキャッシュで記事はまだ見れるね。
467 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 22:52:50 ] cache.yahoofs.jp/search/cache?p=BitVector32+vs+BitArray&ei=UTF-8&fr=sb-jane&u=techbank.jp/Community/blogs/mymio/archive/2010/03/07/25216.aspx&w=bitvector32+vs+versus+bitarray&d=HC_-Ae8_U8_v&icp=1&.intl=jp これか。何が間違ってるのかわからんw
468 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 22:55:24 ] 間違ってるというより何一つ意味を為してないんだな 書いてる本人が自分で何やってるのかわかってないからわざと曖昧に書いてるのが伝わってくる
469 名前:462 mailto:sage [2010/06/13(日) 23:02:40 ] あんまり突っ込みどころが多いから、逐一指摘してたらコメントが長くなるし 変な人だと思われそうだから、1点に絞って突っ込んだんだけどね。 いっそ高木浩光ばりに突っ込みまくった方が良かったのだろうか?
470 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 23:07:48 ] >>469 あー、私知らなかったわー。って感じの文章なんだから、もっとソフトにやってあげてもいいんじゃない。
471 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 23:08:30 ] どんなコメントだったん?
472 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 23:10:28 ] GoogleもYahooもキャッシュにコメントがないなあ Bingはキャッシュすらないし
473 名前:462 mailto:sage [2010/06/13(日) 23:17:13 ] 細かい文章は覚えてないが、 BitVector32::ItemsとBitArray::Itemsの戻り値を整数として評価すると異なる値になると あなたは言っていますが、.NetのBoolean型は整数と可換なものではないので、整数として 評価することに意味はありません。また、内部的にも1ビットの整数として実装されていますので、 整数に変換した結果は毎回同じです。-1が出力されているのは、あなたがConsole.WriteLineの フォーマット文字列に“-1”と書いたからです。 基本的なデータ型について理解していないのはあなたの方です。正当な疑問に木で鼻をくくったような 返答をする態度は非常に不愉快です。 といったところ。最後に余計なことを言っているけど、これは以前にコメントをしていた人に、 ビット操作の概念を勉強しないとこの記事は理解できないよ、というような返答をしていたので、 それに対するもの。
474 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 23:21:55 ] .NETのboolは8ビットで0がfalseで0以外がtrueじゃなかったっけ 記事の間違いは別問題だが
475 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 23:22:23 ] 記事ごと消すほどのコメントじゃないわな。
476 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 23:31:53 ] たまたま残ってたから一応書いておこう。 最初のコメント ---- > まとめると、 > BitVector32 BitArray > true -1 を表す 1 を表す > false 0 を表す 0 を表す > となります。 これはいったいどういう意味でしょうか? ---- その返答 ---- ビットフラグがONの場合がTrue、ビットフラグがOFFの場合はFalseです。 このON/OFFを数値で表した場合、BitArrayとBitVector32とではON/OFFの数値の意味が異なるという対比表になります。 そもそもビットの概念がわかっていないと、このBlogの説明に書いてある説明を理解しようとしても無理ですので、もし貴方がビットの考え方が良くわからないという場合は、 入門書籍やほかのWebサイトでその辺りを勉強してから、このBlogに書いてある意味を汲み取ってください。 ----
477 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 23:36:23 ] いきなり攻撃的な返答だな。あの日だったりしたのか?w
478 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 23:37:23 ] 記事は消えても画像は残ってるんだな ttp://techbank.jp/Community/blogs/mymio/image_5233298A.png
479 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 01:01:27 ] マルチスレッドで教えてください。 ソケットプログラミングで、受信スレッドがキューにデータを溜めて、 メインスレッドは順次データを読み出して処理するというプログラムを書いています。 メインスレッドはキューにデータが無ければ受信するまで待機したいのですが、 一般的にどう実装するものでしょうか? とりあえず作った受信スレッドは、 Monitor.Enter(obj); 受信ループ キューに格納 Monitor.Exit(obj); Monitor.Enter(obj); ループEnd Monitor.Exit(obj); 受信の都度Exitしてメインスレッドに所有権を明け渡しています。 動作には問題なさそう?なんですけど、なんかスマートじゃないというか。。。
480 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 01:05:17 ] AutoResetEventつかう
481 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 01:12:17 ] lock (q) ループ開始 }
482 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 01:13:28 ] ミスって書きこんじまった、なしなしな
483 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 01:16:31 ] BlockingQueue系統を使うのが定石だが、 .NET 4より前にはなかったな確か。 BlockingQueueとか実装はそこらに転がってそうだが。
484 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 01:19:51 ] >>479 .Net4が使えるなら BlockingCollection<T> 一択。 つかえないなら、↓こういう同期機能付きコレクションを使う。 www.codeproject.com/KB/recipes/boundedblockingqueue.aspx いずれにしても、そういうパターン(いわゆるProducer-Consumerパターン)では 同期機能はキューに持たせるのが一般的。で、Producer(この場合は受信スレッド)は データをキューに入れるだけ、Consumer(この場合はメインスレッド)はキューから 取得するだけにする。
485 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 07:08:32 ] MVPって最初の頃(2003年とかその頃)はいいなと思ってたんだが、わんくま同盟とか言い出した頃から 馴れ合い色が強くなってきて、なんていうか、このブログの主はMVPになる条件を満たしていないにも かかわらず、推薦制度を悪用してMVPになった感があるな。 こんなんがアドバイザとして高い金を取ってるかと思うとなんともいえない気持ちになる。 MVPを専属で引っ張ると100万/週ぐらい取らなかったか? 次回剥奪されると良いが。
486 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 07:29:51 ] >>485 > MVPを専属で引っ張ると100万/週ぐらい取らなかったか? そんなに価値あるのか? まあ、すごいのはいる。
487 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 07:47:51 ] nyaruruとかって本業何してんの?
488 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 07:52:15 ] そんなに取れません。n氏はGoogleに・・・。
489 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 08:00:19 ] GoogleだとWindows使えなくなるじゃん 大丈夫かな
490 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 08:30:10 ] CodeProjectでじゃんじゃん記事書きまくってる奴とか、凄いのがいる。 日本語サイトでMVPを名乗ってる奴の中には、こういうしょうもないのが時々いるから あんまり信用はしてないけど。 この人も結構メディアに露出しているけど、信用をなくすような行動取って大丈夫なのか? 「わかってませんでした。精進します」って言えば済んだことなのに。
491 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 09:32:56 ] >MVPを名乗ってる奴の中には MVPは別に実力に関係ないしな まぁ色々特典もらえるのは正直うらやましい
492 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 13:33:26 ] どこがじゃ
493 名前:デフォルトの名無しさん [2010/06/14(月) 13:49:43 ] >>492 MVP乙
494 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 20:33:37 ] まあMVPに実力は関係ないな。 でも、一つのテーマでコミュニティ築く力は凄いと思わない。
495 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 21:05:26 ] うん。思わない。
496 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 21:47:57 ] 思わないんかいw MVPって数結構多いよね。
497 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 21:50:59 ] 一時期、ものすごい増えて、今は多少減ったみたい。
498 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 22:26:37 ] 高い金取るのってエバンジェリストとかそういうのじゃないっけ? コンサル
499 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 22:36:01 ] >>480-484 レスサンクスです。 Producer-Consumerパターンでぐぐったらズバリ出てきました。 こんな一般的な話だったなんて・・・orz
500 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 22:43:43 ] シングルスレッドではproducerとconsumerの同期がとれないってのが、 プログラムをマルチスレッド化する大きな動機の一つだもんな。
501 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 23:32:24 ] うん。
502 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 06:54:05 ] マルチスレッドといえば.Net4使ってるのに生のthreadやらthreadpoolやらを使ってる奴は何がしたいのかわからん どれだけ俺様ライブラリを量産したいのかと小一時間(ry
503 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 12:20:19 ] Producer-Consumerパターンなら生だろうとBackgroundWorkerだろうと大して変わらんだろ
504 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 21:08:21 ] そういうことじゃないだろ。
505 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 21:18:56 ] ほう
506 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 21:49:26 ] >>502 はプロデューサーコンシューマーに限った話はしてないよね。
507 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 22:04:20 ] そんなMSの俺様クラス作られても、いつサポートされなくなるか分からないしな。
508 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 22:36:19 ] しかしまぁ大手のマルチスレッド関連の記事は古いものばかりだな 忙しくなけりゃ俺が寄稿してあげたいぐらいだわ
509 名前:デフォルトの名無しさん [2010/06/15(火) 22:37:49 ] >>508 ブログにでも書け キーワードさえうまく配置してればそのうち広まるよ
510 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 22:38:57 ] 俺様ライブラリ(車輪の再発明)批判はいいとして、 それがどうして「生のthreadやらthreadpoolやらを使」うことがそれだって言うの? そっちの方が意味がわからんよ。
511 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 22:46:06 ] >>458 んーこのblogなんとなく見てたら気になるとこいっぱいあるな… でももうコメントもできんし。 っていうかだれかすでにコメントしてて消えちまったのかもしれんが。