[プログラム板] C#, C ..
708:デフォルトの名無しさん
08/08/08 00:18:56
うん
709:デフォルトの名無しさん
08/08/08 00:20:44
>>708
ありがとうございます。
それと、勉強するための本を買おうと思っているのですが
有名な物・お勧めの物はあるでしょうか?
710:デフォルトの名無しさん
08/08/08 00:56:16
>>709
ネットで十分
711:デフォルトの名無しさん
08/08/08 00:58:55
>>709
マジレスすると
URLリンク(ufcpp.net)
がおすすめ
712:デフォルトの名無しさん
08/08/08 01:02:11
>>711
ああ、それは俺もお勧め。
713:デフォルトの名無しさん
08/08/08 02:15:19
>>711
読ませていただきます。
ちなみにVC#というソフトでみなさんはプログラムを書かれているんですか?
714:デフォルトの名無しさん
08/08/08 02:16:28
うん
715:デフォルトの名無しさん
08/08/08 03:05:21
むしろテキストエディタとWindowsSDKでやってる人がいたら尊敬する
716:デフォルトの名無しさん
08/08/08 03:14:34
単なるバカだから尊敬できないな
717:デフォルトの名無しさん
08/08/08 03:16:32
.Netが出始めてたころはそれでやってた人もいたようだがな
無料版のIDEも無かったし
718:デフォルトの名無しさん
08/08/08 03:21:40
きちんと楽出来る環境が簡単に整えられるのに
わざわざ意味が無い苦労をする人がいたらそれは馬鹿だけど
そう言う環境が簡単には揃わない時代なら仕方ないじゃない
719:デフォルトの名無しさん
08/08/08 09:17:43
今のVC#はテキストエディタとしても異常に快適だからな
720:デフォルトの名無しさん
08/08/08 09:56:00
プライベートで他のクラスからアクセスする必要のないフィールドって内部クラス化した方が良い?
外部クラス?それとももっとスマートな方法ってある?
721:デフォルトの名無しさん
08/08/08 10:06:09
>>720
そのままプライベートのフィールドで持ってたらあかんの?
722:デフォルトの名無しさん
08/08/08 10:13:20
フィールド==インスタンスの話が何故かクラスの話になるから意味が分からなくなる
723:デフォルトの名無しさん
08/08/08 10:44:48
>>721
それじゃインスタンス1つ分にしかならなくね?
724:デフォルトの名無しさん
08/08/08 10:51:40
行数多くなるとVisualStudioのロードが遅くなるから分けようかと思ったんだけど、
実行時に無駄にオーバーヘッド生むよね、本末転倒だったね・・・
725:デフォルトの名無しさん
08/08/08 10:59:51
partialだかそんなのなかったっけ?
726:デフォルトの名無しさん
08/08/08 11:59:03
VSに負担掛けるほどたくさんの行にフィールドが宣言されてるの?
ロードの時間とか細かいパフォーマンス気にする以前の問題だろそれ
さすがに分けるべき
727:デフォルトの名無しさん
08/08/08 12:07:16
時代はパーシャル!
728:デフォルトの名無しさん
08/08/08 18:59:02
トラックで全国回ってた人だねw
729:デフォルトの名無しさん
08/08/08 22:45:56
>724
JITコンパイラの最適化を少しくらい頼ってみたら?
時々例外が起きたときのスタックトレースが妙に抜けてることがあって
インライン展開されてる様子がわかるとちょっと嬉しくなるよ。
730:デフォルトの名無しさん
08/08/09 18:42:15
簡単なエディタを作っているんですが、
RichTextBoxを使ってて、描画領域を少し右にずらして、その空いた領域に
行番号を描画しています。Graphics.DrawStringです。
当然スクロールされたら行番号を変えなくちゃいけないですが、このとき
再描画する前に前回描画した行番号を消すには、
どんな方法が一番最適なのでしょうか。
731:デフォルトの名無しさん
08/08/09 18:56:44
背景色で塗りつぶす
732:デフォルトの名無しさん
08/08/09 19:22:56
趣味でやるぶんにはExpress Editionで十分ですか?
733:デフォルトの名無しさん
08/08/09 19:25:03
趣味の内容によるかな。いわゆるベータ版マニアだとインストールできないアドインが
多いから十分じゃないかもしれない。
734:デフォルトの名無しさん
08/08/09 19:25:51
>>732
十分。
735:デフォルトの名無しさん
08/08/09 19:27:40
パッケージフェチとしてはやっぱり製品版じゃないと
736:デフォルトの名無しさん
08/08/09 19:32:03
ドMな俺はSDKとメモ帳が最高。
737:デフォルトの名無しさん
08/08/09 19:35:41
俺なんか仕事で評価版つかってるから大丈夫
738:デフォルトの名無しさん
08/08/09 19:36:52
>>733
何か使えない機能があるということですか
>>734
そうですか
>>736
頑張ってください
739:デフォルトの名無しさん
08/08/09 19:38:12
>>737
不具合はないですか?
740:デフォルトの名無しさん
08/08/09 19:40:25
silverlight2やSQLServer2008用のアドインはSTD版以上だったかな。
741:デフォルトの名無しさん
08/08/09 20:43:02
TextBox.Text = str;
とやっているのですが、strが大きいと処理時間遅くなるものなのですか?
str.Lengthが4320162だったのですが、10secくらいかかります。
中身のイメージではポインタのコピーとかではなく、実データを
コピーしているから遅いのでしょうか?
これを早くする方法はないのでしょうか?
742:デフォルトの名無しさん
08/08/09 20:44:08
TextBox使うのやめて、オーナードローにする
743:デフォルトの名無しさん
08/08/09 21:18:00
文字列代入の時だけ別スレッドで動かせばいいんですかね?
744:デフォルトの名無しさん
08/08/09 21:22:01
コントロールにはそれを所有しているスレッドからしかアクセスできん
745:デフォルトの名無しさん
08/08/09 21:26:41
>>742
の言ってる事は、
遅いのは文字列のコピーじゃなくて、その文字列の描画に時間が掛かってるんだよ
という事
746:デフォルトの名無しさん
08/08/09 21:33:15
4320162ってヘタしたらXPのソースコードよりデカい気がするんだけど
そんなものTextBoxに表示してどうしろとw
ちなみに、RichTextBoxで代替したらあんがいあっさり解決しない?
747:デフォルトの名無しさん
08/08/09 21:39:23
> XPのソースコードよりデカい
またまたご冗談を
748:デフォルトの名無しさん
08/08/10 00:08:05
>746
RichTextBoxだと7秒くらいでTextBoxで17秒くらいかかります。
バイナリをヘキサで表示してるんですが、大きいものだとこの7秒とかの間
かたまってしまって・・・
>745
TextBox.Text = str;
の前と後にStopWatchクラスで処理時間を出してるんですが、
この代入には描画処理も含まれているということでしょうか?
RichTextBoxはコントロールで表示されているところの描画のみ
してくれるわけではないのでしょうか?
>744
コントロールに別スレッドからでもアクセスする方法ってありません
でしたっけ?Invokeとか?
RichTextBoxには表示したいところだけバイナリを情報を代入してけば
いいんですかね?スクロールするたびに出したり消したりするとか?
749:デフォルトの名無しさん
08/08/10 00:11:16
>>748
InvokeはUIスレッドが今やってる仕事を中断させて別の仕事をやらせる関数。
そんなでかいデータ扱うなら横着しないでユーザコントロール書けばいいだろ。
750:デフォルトの名無しさん
08/08/10 00:47:50
>>749
しつこいね君も。
簡単に言うけどかなり面倒だしそれなりに難しいと思うよ。
表示することだけ考えてない?
751:デフォルトの名無しさん
08/08/10 00:56:37
>>750
それならもう勝手にしろよw
ヘキサエディタでできあいのコモンコントロール使ってるのあったら教えてね
752:デフォルトの名無しさん
08/08/10 01:03:48
すいません横着させてくださいっす。新しくユーザーコントロールはきついっす。
RichTextBoxがそういう仕様ならやはりちょびちょび表示ですかねぇ。。。
753:デフォルトの名無しさん
08/08/10 01:11:16
仮想モードでListViewでもつかえば
754:デフォルトの名無しさん
08/08/10 01:30:38
プログラム板ってさ、低脳ばっかだよね。
OpenGLスレくらいだなマシなのは。
755:デフォルトの名無しさん
08/08/10 01:31:29
OpenGLスレ見てみたがアホばっかりなんだが…
756:デフォルトの名無しさん
08/08/10 01:50:58
>>755
どんなスレ見てるの?
757:デフォルトの名無しさん
08/08/10 06:43:35
>>748
TextBox.AppendText()は使ってみた?
InvokeRequiredとInvoke, BeginInvokeはUIスレッドにマーシャリングしてくれるメソッド
758:デフォルトの名無しさん
08/08/10 07:23:19
>757
TextBox.AppendText(str)も同じくらい時間かかりました。
>753
>仮想モードでListView
kwsk
759:デフォルトの名無しさん
08/08/10 08:24:17
zip内のファイルを実行したい(wav鳴らすとか)のですが、そのためには一時フォルダ等に
ファイルを展開しなければならないのでしょうか?
zip内に格納したままあれこれやるってのは不可能なのでしょうか?
760:デフォルトの名無しさん
08/08/10 08:28:07
うん
761:デフォルトの名無しさん
08/08/10 10:40:14
SharpZipLibでメモリに展開し、Win32APIのwaveOutWriteやDirectSoundに流せばできるんじゃね?
762:デフォルトの名無しさん
08/08/10 10:41:55
Streamに展開すればいいんじゃね?
763:デフォルトの名無しさん
08/08/10 13:56:58
質問です
DBからデータを取得し、その構造体を返すクラスを作成しています。
私個人としては、datasetの形でかえしたいと思っています。
しかし、速度の問題から、
listを返すようになっています。
datasetで値のやりとりをするのと、<list>でやりとりをするので
そこまで速度やパフォーマンス、メモリの負担などはかわるのでしょうか?
ただのgetsetのプロパティのついたクラスのarraylistを、データとして使うほうが
早いのでしょうか?
僕としては、ここは.NETらしくdatasetを使いたいのですが。
764:デフォルトの名無しさん
08/08/10 14:03:31
とりあえず測ってみればいいんじゃないかな
765:デフォルトの名無しさん
08/08/10 14:06:39
構造体返すんだったらデータセットよりも素直にコレクションで返してくれた方が
使う側としては便利だと思うけど
766:デフォルトの名無しさん
08/08/10 14:13:54
>>758
kwskじゃなくてまずググれよ
767:デフォルトの名無しさん
08/08/10 14:14:57
.NETの構造体の意味を誤解している可能性大
768:デフォルトの名無しさん
08/08/10 15:14:59
代入では無くて文字列の描画に時間がかかってるなら、
ユーザードロウしない限り改善不可能じゃないか?
769:デフォルトの名無しさん
08/08/10 17:51:36
>>765
そうでしょうか。
たとえば、DataSet(型付Datasetという意味です)でデータを持つか
構造体でデータを持つか
そのメリットデメリットってそもそもなんなんでしょうか
datasetだと、複数テーブルをセットして、
リレーション張ったり、
うけとった側で、フィルターかけたり、nullチェック等のメソッドが用意されていたり
デザイナでデザインできたりするところだと思うのですが
構造体にすると、なんか.NET的な組み方じゃなくなってるような気もしたりしなかったり
僕が間違っていますか。
770:デフォルトの名無しさん
08/08/10 18:05:43
時と場合による
771:デフォルトの名無しさん
08/08/10 18:25:37
とりあえず「構造体」というものについて勘違いしてるのはよくわかった
クラスじゃなくてほんとに構造体で返すようなデータならデータセットで返すなんてありえない
772:デフォルトの名無しさん
08/08/10 21:53:50
構造体って値で返すのか
773:デフォルトの名無しさん
08/08/10 22:11:58
>>771
すいません、
えっとarrayistを返すか、datasetを返すかということでした。すいません。
774:デフォルトの名無しさん
08/08/11 01:12:06
作り手はdatasetのほうがいいだろうさ
使う側はどういう用途なの?
それがわからんと良いとも悪いともいえん
775:デフォルトの名無しさん
08/08/11 12:33:44
MSDNライブラリには
SpinWait のコードの実行は、
複数のプロセッサが搭載されているコンピュータで発生する可能性のある問題を回避するように設計されています。
たとえば、Hyper-Threading技術を使用した複数の Intelプロセッサが搭載されているコンピュータで、
SpinWait は、特定の状況で、利用できるプロセッサ リソースがなくなることを回避します。
とあるんですが、マルチコアCPUではThread.SleepよりThread.SipnWaitを使った方が良いのでしょうか?
776:デフォルトの名無しさん
08/08/11 12:42:36
ケースバイケース
777:デフォルトの名無しさん
08/08/11 15:32:52
>>775
ていうかその説明は Sleep 関係ない。
Sleep と比較してどうこうじゃなくこのメソッドの実装は HT やマルチコア
みたいな環境でも問題起こりませんよっつー意味
なんでそんな注意書きがあるのかはスピンウェイト、スピンロック
あたりでググってまずそのメソッドが何するのか分かれ。
ついでに Sleep との違いも
778:デフォルトの名無しさん
08/08/11 16:12:16
マルチコアだけでなくハイパースレッディング環境でも
一応うまく動くようになってるよってことじゃないの?
779:デフォルトの名無しさん
08/08/11 16:16:00
マルチコアやハイパースレッディングみたいな環境でも問題起こらないって…
普通マルチコアやハイパースレッディング環境でしか使わないだろ
でハイパースレッディングの場合も一応うまく動くようになってるよってことだろ?
実装によっちゃ無意味にCPU目一杯ぶん回すだけで意味ない可能性もあるから。
780:デフォルトの名無しさん
08/08/11 16:19:36
コードを見ようと思ったがネイティブに飛んでてわからなかった。
予想できることは一定時間ごとにスレッドを譲る仕掛けか、
一定時間でSleepに変更するかといったところだろう。
1CPUの場合はすぐさまスイッチしないと意味が無いし、
2CPU以上ならある程度スピンさせてても大丈夫だろう。
HTの場合はその中間くらいで手打ちしてるんじゃなかろうか。
781:デフォルトの名無しさん
08/08/11 17:44:20
スピンはスレッド中断には移行しない。
だから自分でバックオフを持たなきゃならない。
まあそもそも長時間かかる可能性がないとこだけにしとくのが無難だけど。
ついでに大抵シングルコア環境では使わない。
HTの場合は処理なし命令?でスピンして、有効な処理ではないことが
CPUに分かるように実装されてるはず。
782:デフォルトの名無しさん
08/08/11 18:42:10
いやシングルコアでは使わないって言うか使うよ。高精度な
というかスイッチしない待ちのとき使うものでコア数関係ない
あえて言えば Win 上で動くからか
ちなみに HT の場合の話だがシェアするからビジーさせると
それが埋め尽くしちゃってパフォーマンスが極端に低下する。
だから PAUSE 命令が追加されててスピンにそれを使う必要が
あるんだがそれ使ってますよみたいな意
783:デフォルトの名無しさん
08/08/11 19:38:13
シングルコアでスイッチしない待ちをやること自体が少ないんじゃないの?
784:デフォルトの名無しさん
08/08/11 19:40:27
あ、ここでのシングルコアはHTは含んでない。
785:デフォルトの名無しさん
08/08/11 21:13:56
>>783
内部的でいいんなら Moniter やらの同期機構が内部で使ってる。
アプリレベルだと例えば単純にスイッチは精度が悪い(Sleep は「最低」
指定時間待つ API)ので timeBeginPeriod(or MMCSS)でスケジューラ
いじって Sleep とスピンウェイトのあわせ技がいい。
機会や直で使うジャンルが少ないのは同意。コア周り、メディア、ゲーム
系しか知らん。
というか一定時間(クロック)待つようなメソッドの使い方(ぶっちゃけタイマ
みたいなもんだ)がマルチコアしか使わないになんでなるんだよという話。
ぜんぜん別やん。
もしかしてマルチコアじゃなくマルチスレッドっていう話か?
…それはそれとして思い出したんだが iterations を現実時間から計算する
方法知っている人いたりしない?
786:デフォルトの名無しさん
08/08/11 21:55:36
いや、一般にメディア、ゲーム系なんていう特殊な用途以外じゃ
まず使う機会がないって感覚だった。
Winで一定時間(クロック)待つような使い方自体が特殊用途なイメージだったわ。
ところでMonitorやらってシングル環境でもSpinWaitしとんのかね??
787:デフォルトの名無しさん
08/08/11 22:15:43
>>786
モニタの場合は基本的に他のスレッドからの開放待ちだから1CPUではスレッドを譲らないと意味が無い。
マルチCPUの場合は最初はスピンで待って、一定時間越えたらSleep系のWaitに変える。
1CPUでスピンをやるとしたら、微妙なタイミングのIO制御や
他のディバイスからの割り込み待ちといったところで普通はディバイスドライバの仕事。
ゲームとかビデオとかそういうのが絡まない限り1CPUでビジーループはありえない。
788:デフォルトの名無しさん
08/08/11 22:28:21
だよねってことが聞きたかった。
単にシングル環境での
>内部的でいいんなら Moniter やらの同期機構が内部で使ってる。
について疑問だっただけ。
789:デフォルトの名無しさん
08/08/12 14:28:25
C#のおもしろい、本・ホームページ教えてけれ。
今、GUIをソースコードからうってcscでコンパイルしてるんだけど、おもしろい。
なんでもいいから、教えてけれ。
790:デフォルトの名無しさん
08/08/12 15:19:44
ちょっとGUIでアプリ(簡単な物)を作ろうと思ったのですが
C+APIはもう嫌になったので(殴
新たに何か言語を勉強すべくC#に目をつけたのですが、
・GUIアプリ製作のためにC#を学ぶ
この考えはまずいでしょうか?(もしくは他にもっと良いものがある?)
(プログラミングのスキルはCをそこそこ,JAVAは超初心者 です。)
791:デフォルトの名無しさん
08/08/12 15:25:51
いいと思うよ
792:デフォルトの名無しさん
08/08/12 15:30:00
>>789
猫でもわかるは知ってるよね?
URLリンク(www.kumei.ne.jp)
793:デフォルトの名無しさん
08/08/12 16:07:25
>>790
全然良い。
逆に言うと画像処理とか線形代数計算ならわざわざC#を選ぶ必要性がないしね。
イベントと継承が分かってくれば単純なGUIアプリならすぐ作れるようになるよ。
頑張れ。
794:デフォルトの名無しさん
08/08/12 16:24:17
JavaだろうがC#だろうがマルチスレッドになってからが本番だと思う
795:デフォルトの名無しさん
08/08/12 16:44:19
>>789
Google 先生の評価に従ってみるのもいいと思う。
796:789
08/08/12 18:44:30
>>792
猫はC#編もあるんだ。昔、WinAPIのときちょっと参考にしていたよ。
やってみるよ。さんくす!
>>795
Google先生でググってみます。色々あってどれがいいか見定めなきゃいかんけど、
がんばるよ。ありがとう。
797:デフォルトの名無しさん
08/08/12 20:56:08
MicrosoftPressのプログラミング.NET Frameworkが良かった
デリゲートやガベージコレクション、非同期処理などについてとても詳しい解説があるよ
798:デフォルトの名無しさん
08/08/13 09:50:20
DataGridViewを利用した自作カレンダーを作ったんだが、
これを複数のフォームで使いたいのね。
そういう時、クラスライブラリを作るのか、プロジェクトにクラス追加するのか、
どっちがいいの?
てか、プロジェクトに追加するクラスって、どういう時に使うの?
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5064日前に更新/181 KB
担当:undef