[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 07/25 03:42 / Filesize : 181 KB / Number-of Response : 799
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

[プログラム板] C#, C♯, C#相談室 Part47



1 名前:名無しぃ♯ [2008/06/21(土) 17:51:22 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
c++厨の嵐はスルー汁。

前スレ
C#, C♯, C#相談室 Part46
pc11.2ch.net/test/read.cgi/tech/1208791919/

その他テンプレ>>2-5くらい

765 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 14:06:39 ]
構造体返すんだったらデータセットよりも素直にコレクションで返してくれた方が
使う側としては便利だと思うけど

766 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 14:13:54 ]
>>758
kwskじゃなくてまずググれよ

767 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 14:14:57 ]
.NETの構造体の意味を誤解している可能性大

768 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 15:14:59 ]
代入では無くて文字列の描画に時間がかかってるなら、
ユーザードロウしない限り改善不可能じゃないか?

769 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 17:51:36 ]
>>765
そうでしょうか。

たとえば、DataSet(型付Datasetという意味です)でデータを持つか
構造体でデータを持つか
そのメリットデメリットってそもそもなんなんでしょうか

datasetだと、複数テーブルをセットして、
リレーション張ったり、
うけとった側で、フィルターかけたり、nullチェック等のメソッドが用意されていたり
デザイナでデザインできたりするところだと思うのですが

構造体にすると、なんか.NET的な組み方じゃなくなってるような気もしたりしなかったり

僕が間違っていますか。

770 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 18:05:43 ]
時と場合による

771 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 18:25:37 ]
とりあえず「構造体」というものについて勘違いしてるのはよくわかった
クラスじゃなくてほんとに構造体で返すようなデータならデータセットで返すなんてありえない

772 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 21:53:50 ]
構造体って値で返すのか

773 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 22:11:58 ]
>>771
すいません、
えっとarrayistを返すか、datasetを返すかということでした。すいません。



774 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 01:12:06 ]
作り手はdatasetのほうがいいだろうさ

使う側はどういう用途なの?

それがわからんと良いとも悪いともいえん

775 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 12:33:44 ]
MSDNライブラリには

SpinWait のコードの実行は、
複数のプロセッサが搭載されているコンピュータで発生する可能性のある問題を回避するように設計されています。
たとえば、Hyper-Threading技術を使用した複数の Intelプロセッサが搭載されているコンピュータで、
SpinWait は、特定の状況で、利用できるプロセッサ リソースがなくなることを回避します。

とあるんですが、マルチコアCPUではThread.SleepよりThread.SipnWaitを使った方が良いのでしょうか?

776 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 12:42:36 ]
ケースバイケース

777 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 15:32:52 ]
>>775
ていうかその説明は Sleep 関係ない。
Sleep と比較してどうこうじゃなくこのメソッドの実装は HT やマルチコア
みたいな環境でも問題起こりませんよっつー意味

なんでそんな注意書きがあるのかはスピンウェイト、スピンロック
あたりでググってまずそのメソッドが何するのか分かれ。
ついでに Sleep との違いも


778 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 16:12:16 ]
マルチコアだけでなくハイパースレッディング環境でも
一応うまく動くようになってるよってことじゃないの?


779 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 16:16:00 ]
マルチコアやハイパースレッディングみたいな環境でも問題起こらないって…
普通マルチコアやハイパースレッディング環境でしか使わないだろ

でハイパースレッディングの場合も一応うまく動くようになってるよってことだろ?
実装によっちゃ無意味にCPU目一杯ぶん回すだけで意味ない可能性もあるから。


780 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 16:19:36 ]
コードを見ようと思ったがネイティブに飛んでてわからなかった。
予想できることは一定時間ごとにスレッドを譲る仕掛けか、
一定時間でSleepに変更するかといったところだろう。
1CPUの場合はすぐさまスイッチしないと意味が無いし、
2CPU以上ならある程度スピンさせてても大丈夫だろう。
HTの場合はその中間くらいで手打ちしてるんじゃなかろうか。

781 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 17:44:20 ]
スピンはスレッド中断には移行しない。
だから自分でバックオフを持たなきゃならない。
まあそもそも長時間かかる可能性がないとこだけにしとくのが無難だけど。

ついでに大抵シングルコア環境では使わない。

HTの場合は処理なし命令?でスピンして、有効な処理ではないことが
CPUに分かるように実装されてるはず。


782 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 18:42:10 ]
いやシングルコアでは使わないって言うか使うよ。高精度な
というかスイッチしない待ちのとき使うものでコア数関係ない
あえて言えば Win 上で動くからか

ちなみに HT の場合の話だがシェアするからビジーさせると
それが埋め尽くしちゃってパフォーマンスが極端に低下する。
だから PAUSE 命令が追加されててスピンにそれを使う必要が
あるんだがそれ使ってますよみたいな意

783 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 19:38:13 ]
シングルコアでスイッチしない待ちをやること自体が少ないんじゃないの?




784 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 19:40:27 ]
あ、ここでのシングルコアはHTは含んでない。

785 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 21:13:56 ]
>>783
内部的でいいんなら Moniter やらの同期機構が内部で使ってる。
アプリレベルだと例えば単純にスイッチは精度が悪い(Sleep は「最低」
指定時間待つ API)ので timeBeginPeriod(or MMCSS)でスケジューラ
いじって Sleep とスピンウェイトのあわせ技がいい。
機会や直で使うジャンルが少ないのは同意。コア周り、メディア、ゲーム
系しか知らん。

というか一定時間(クロック)待つようなメソッドの使い方(ぶっちゃけタイマ
みたいなもんだ)がマルチコアしか使わないになんでなるんだよという話。
ぜんぜん別やん。
もしかしてマルチコアじゃなくマルチスレッドっていう話か?

…それはそれとして思い出したんだが iterations を現実時間から計算する
方法知っている人いたりしない?

786 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 21:55:36 ]
いや、一般にメディア、ゲーム系なんていう特殊な用途以外じゃ
まず使う機会がないって感覚だった。
Winで一定時間(クロック)待つような使い方自体が特殊用途なイメージだったわ。

ところでMonitorやらってシングル環境でもSpinWaitしとんのかね??


787 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 22:15:43 ]
>>786
モニタの場合は基本的に他のスレッドからの開放待ちだから1CPUではスレッドを譲らないと意味が無い。
マルチCPUの場合は最初はスピンで待って、一定時間越えたらSleep系のWaitに変える。
1CPUでスピンをやるとしたら、微妙なタイミングのIO制御や
他のディバイスからの割り込み待ちといったところで普通はディバイスドライバの仕事。
ゲームとかビデオとかそういうのが絡まない限り1CPUでビジーループはありえない。


788 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 22:28:21 ]
だよねってことが聞きたかった。
単にシングル環境での
>内部的でいいんなら Moniter やらの同期機構が内部で使ってる。
について疑問だっただけ。


789 名前:デフォルトの名無しさん [2008/08/12(火) 14:28:25 ]
C#のおもしろい、本・ホームページ教えてけれ。

今、GUIをソースコードからうってcscでコンパイルしてるんだけど、おもしろい。

なんでもいいから、教えてけれ。

790 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 15:19:44 ]
ちょっとGUIでアプリ(簡単な物)を作ろうと思ったのですが
C+APIはもう嫌になったので(殴
新たに何か言語を勉強すべくC#に目をつけたのですが、

・GUIアプリ製作のためにC#を学ぶ
この考えはまずいでしょうか?(もしくは他にもっと良いものがある?)
(プログラミングのスキルはCをそこそこ,JAVAは超初心者 です。)

791 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 15:25:51 ]
いいと思うよ

792 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 15:30:00 ]
>>789
猫でもわかるは知ってるよね?
ttp://www.kumei.ne.jp/

793 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 16:07:25 ]
>>790
全然良い。
逆に言うと画像処理とか線形代数計算ならわざわざC#を選ぶ必要性がないしね。
イベントと継承が分かってくれば単純なGUIアプリならすぐ作れるようになるよ。
頑張れ。



794 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 16:24:17 ]
JavaだろうがC#だろうがマルチスレッドになってからが本番だと思う

795 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 16:44:19 ]
>>789
Google 先生の評価に従ってみるのもいいと思う。

796 名前:789 mailto:sage [2008/08/12(火) 18:44:30 ]
>>792
猫はC#編もあるんだ。昔、WinAPIのときちょっと参考にしていたよ。
やってみるよ。さんくす!

>>795
Google先生でググってみます。色々あってどれがいいか見定めなきゃいかんけど、
がんばるよ。ありがとう。

797 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 20:56:08 ]
MicrosoftPressのプログラミング.NET Frameworkが良かった
デリゲートやガベージコレクション、非同期処理などについてとても詳しい解説があるよ

798 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 09:50:20 ]
DataGridViewを利用した自作カレンダーを作ったんだが、
これを複数のフォームで使いたいのね。
そういう時、クラスライブラリを作るのか、プロジェクトにクラス追加するのか、
どっちがいいの?
てか、プロジェクトに追加するクラスって、どういう時に使うの?






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<181KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef