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


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

ふらっとC♯(Part5)



1 名前:デフォルトの名無しさん [03/10/04 01:02]
このスレッドは

「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。

ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。

少しずつC#プログラマを名乗るものが現れました。みなさん一緒に勉強しましょう。

前スレッドはこちら
pc2.2ch.net/test/read.cgi/tech/1059028988/l50 (Part4)
pc2.2ch.net/test/read.cgi/tech/1047210828/l50 (Part3)
pc2.2ch.net/test/read.cgi/tech/1035895873/l50 (Part2)
pc2.2ch.net/test/read.cgi/tech/1023766485/l50

252 名前:デフォルトの名無しさん mailto:sage [04/08/07 14:35]
>>251
非Managedなプロセス空間にManagedな構造体を確保する意味がさっぱりわからないんだが。

ttp://dotnetjunkies.com/WebLog/chris.taylor/archive/2004/05/31/14828.aspx
とりあえず外部プロセスへのちょっかいの参照。

253 名前:251 [04/08/07 15:56]
252さんアドバイスありがとうございます。
これをやりたい理由は、興味本位で出来るかどうか試したかっただけです。
とりあえず上のURLをよく読んで見ます。

254 名前:デフォルトの名無しさん mailto:sage [04/08/07 18:02]
おまいら、コールバックにデリゲートとインターフェースの
どっち使ってる?
JavaのGUIのリスナーみたいなケースなら、デリゲートの
方が何もしないメソッドまで記述しなくて済むし効率いいかな。

255 名前:デフォルトの名無しさん mailto:sage [04/08/07 18:30]
>>254
俺は Java 出身だから、ある程度一まとまりの処理をくっつけるならインターフェイス使っている
デリゲートは纏まり間が無くて、単体なら遣いやすいけど微妙

256 名前:デフォルトの名無しさん mailto:sage [04/08/07 21:19]
俺はデリゲート派

257 名前:デフォルトの名無しさん mailto:sage [04/08/07 21:22]
anonymous class は使えないが、anonymous delegate は使えるようになるので、
デリゲートにしておくのが無難なのでは。

258 名前:デフォルトの名無しさん mailto:sage [04/08/07 23:45]
非常に唐突な質問で申し訳ないが、C#で、というか.NET Frameworkで
各ドライブのボリュームラベルを取得するのってどうやるんだべさ?

なんかAPI叩くしかなかったら非常に鬱なので教えてエロイ人!

259 名前:デフォルトの名無しさん mailto:sage [04/08/07 23:48]
>>258
DriveInfo.VolumeLabel かな。
…… .NET Framework 2.0 だけど。

260 名前:デフォルトの名無しさん mailto:sage [04/08/08 00:00]
2.0で変更になったクラスの一覧ってないかな?



261 名前:デフォルトの名無しさん mailto:sage [04/08/08 00:06]
>>259
やっぱ2.0になっちまうのか・・・。
何故こんな基本的なもんが実装されてないんだと小一(ry

262 名前:デフォルトの名無しさん mailto:sage [04/08/08 00:18]
[DllImport("Kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
extern static bool GetVolumeInformation(
string RootPathName,
StringBuilder VolumeNameBuffer,
int VolumeNameSize,
out uint VolumeSerialNumber,
out uint MaximumComponentLength,
out uint FileSystemFlags,
StringBuilder FileSystemNameBuffer,
int nFileSystemNameSize);

263 名前:デフォルトの名無しさん mailto:sage [04/08/08 00:20]
>>262
トンクスエロイ人!
やっぱこうやるか・・・。なんだかなぁ・・・

264 名前:デフォルトの名無しさん [04/08/08 02:15]
Socket.Selectで64を超えるソケットリストを渡すと範囲外エラーになるのですが、

この64という制限は何によってかかっているでしょうか。
100に変更したりとかできないでしょうか。

265 名前:デフォルトの名無しさん [04/08/08 11:05]
ボタンの配列(二次元)をクリックされた時に、何番のボタンがクリックされたかを調べるにはどうしたら良いですか?
MyButtons[,] = new Button[3,5];
のように宣言されていて、forの二重ループの中で初期化して
MyButtons[i,j].Click += new EventHandler(MyButtons_Click);
みたいにしてみましたが、MyButtons_Clickの引数には別に「MyButtonsの何番目か」は渡されません。
どうしたらいいんですか

266 名前:デフォルトの名無しさん mailto:sage [04/08/08 11:11]
>>265
ボタンの番号が固定のものなら、Button.Tag あたりに番号を押し込めておけば良いのでは?

267 名前:デフォルトの名無しさん mailto:sage [04/08/08 11:22]
自分が [2,1]だとしたら、[2,0]と[2,2]のボタンも操作したいんですよ。
なんとかなりませんかねえ

268 名前:デフォルトの名無しさん mailto:sage [04/08/08 11:28]
>>267
???
だからTagにint[]{2, 1}とかいれとけばいいんじゃないの?

それがまずいというのならもっとわかりやすく説明してくれないと何がなにやら。

269 名前:デフォルトの名無しさん mailto:sage [04/08/08 11:34]
>>268
あ、いま意味が分かりましたサンクス

270 名前:デフォルトの名無しさん mailto:sage [04/08/08 12:19]
>>264
普通に1000とかできるじゃん……と思ったら.NET Framework2.0だった。

1.1の制限のようだ。



271 名前:デフォルトの名無しさん mailto:sage [04/08/08 12:27]
>>264
OS の制限。WaitForMultipleObjects() できる最大数が64だから。
2.0 で表面的な制限は外れても、64を超えると効率は落ちる気がする。

272 名前:デフォルトの名無しさん mailto:sage [04/08/08 13:46]
簡単なベンチの結果、数が25以上になった辺りから緩やかに効率が落ちていった。
でも64周辺の境界は見あたらなかった。

ついでに1.0/1.1/2.0bも比較してみた。(スコアは低い方が優秀)
10でスコア 410 / 370 / 250
25でスコア 320 / 300 / 230
40でスコア 325 / 320 / 250
64でスコア 370 / 370 / 300

有意の差があるね。
1.1までとは違う機構を利用してたりするんじゃないかってくらい2.0は早い。
数が少ない時と多い時のスコアの分布とか。

273 名前:デフォルトの名無しさん [04/08/08 13:50]
DataGridで

ABC | DEF | GHI
JKL | MNO | PQR
STU | VWX | YZA
BCD | EFG | HIJ

こういう表の MNOとVWXだけ範囲指定させるみたいなことはできますか?

274 名前:264 mailto:sage [04/08/08 14:27]
>>270-272
環境も書き忘れたのに本当にありがとうございます。
しかもWaitForMultipleObjectsとの関連、
ベンチまでしていただいてとても参考になりました。


275 名前:デフォルトの名無しさん mailto:sage [04/08/09 00:29]
クラスのオブジェクトをコピーしたいんだけどよくわからんです。
AObject obj1 = obj2.Clone();
ってすればいいんだろうけど、
Cloneを書くときにCのmemcpyみたいなことってできないんでしょうか?
それともいちいちフィールド一つずつ代入?


276 名前:デフォルトの名無しさん mailto:sage [04/08/09 00:38]
Object.MemberwiseClone()

277 名前:275 mailto:sage [04/08/09 15:39]
>>276
さんきゅ。
それつかってICloneableを実装するのが流儀なのだな。

278 名前:デフォルトの名無しさん mailto:sage [04/08/13 14:30]
Point とかの Dispose できないヤツって、Dispose しなくていいの?

Point aaa = new Point(0,0);
aaa = new Point(1,1);
aaa = new Point(2,2)

とかしても大丈夫?


279 名前:デフォルトの名無しさん mailto:sage [04/08/13 15:17]
>>278
int a = 0;
a = 1;
a = 2;

とやることにためらいを覚える?

280 名前:デフォルトの名無しさん mailto:sage [04/08/14 04:46]
char *p = malloc(100);
p = malloc(100);
p = malloc(100);

とやることにはためらいを覚える。




281 名前:275 [04/08/15 15:23]
Pointとかは構造体だからOKってことだよね。
正しいクラスはDisposeを持つべきってことか?
自前のやつも?


282 名前:デフォルトの名無しさん mailto:sage [04/08/15 15:30]
>>281
もうちょっとGCを信用しようや。
Disposeが必要なのは基本的にUnmanagedなリソースを扱うクラスのみ。

283 名前:デフォルトの名無しさん mailto:sage [04/08/15 16:19]
GCはいいんだけど、自分で自由に解放できないのがいまいち

なんか「ゴミをゴミ箱に捨てると清掃員の仕事が減ってリストラされるから、ゴミは道に捨てるべき」とか言ってるみたい

284 名前:デフォルトの名無しさん mailto:sage [04/08/15 17:21]
>>283
でも
道に捨てない −> 清掃員の仕事が減ってリストラ −> ごみを捨て忘れても綺麗にならない
だから道に捨てるんだ。


285 名前:デフォルトの名無しさん [04/08/15 17:44]
環境はVS2003です。

ツール(T)→webページのビルドコメント(B)
でドキュメントを作成したところ、「コード要素ページ operator + が不完全です。 」というエラーが取り除けなくて困っています。
だれか理由が分る人いますか?

以下問題のコードです。

/// <summary>テスト</summary>
public class Test
{
/// <summary>足し算</summary>
/// <param name="a">引数その1</param>
/// <param name="b">引数その2</param>
/// <returns>結果</returns>
public static Test operator + ( Test a , Test b ) { return null ; }
}

>>282
Unmanagedというより、IO関連とかメモリーと連携するわけにはいかないオブジェクトが実装する必要があるのでは?
OSのリソースはメモリーのようにいつでも解放できるリソースばかりではありませんから、そのようなリソースを握るオブジェクトには必然的に必要になります。
参照先がなくなった瞬間に即時開放されるタイプのクラスが定義できると、こんな面倒な事をしなくてすむんですが……
と、C++でスマートポインタを使っていると切に欲しくなる事があったりします。


286 名前:デフォルトの名無しさん mailto:sage [04/08/15 20:23]
Disposeしたところでメモリに対しては何も出来ないんだから意味なし。
まあ、>>285のように思う事はない事もない。

287 名前:デフォルトの名無しさん mailto:sage [04/08/15 20:29]
何らかのクリーンアップコードを実行したい場合なんかは、
Disposeを実装すべきである事が多い。
単に使用終了と言う意味合いだけなら、何もする必要なし。
※Dispose実装したところでする事は何もない。
メモリに関しちゃほっとけばいいってのがGCのある環境での基本。


288 名前:デフォルトの名無しさん mailto:sage [04/08/15 20:30]
using ステートメント(と IDisposable インタフェイス)ではどこがダメなの?

289 名前:デフォルトの名無しさん mailto:sage [04/08/15 20:47]
忘れる可能性があるから、強制できないから。
まあ、>>285の言うようなスマートポインタみたいな物っていっても、
結局直接参照しか扱えないため、包含するクラスは全部そのタイプにしなけりゃ
意味がなかったりして、結局大げさになりすぎてうまくいかないかな。
GCとは相性が悪いね。

290 名前:デフォルトの名無しさん mailto:sage [04/08/17 19:02]
MSNメッセンジャーでの「ほげほげがサインインしました」みたいなポップアップ
ダイアログを作りたいのだが,ここにいる諸氏ならばどのようにして実現するか,
意見をお聞きしたい.



291 名前:デフォルトの名無しさん mailto:sage [04/08/17 19:45]
出来合いのコンポーネントを使う。

292 名前:デフォルトの名無しさん mailto:sage [04/08/17 20:47]
>>290
他にもあるけど

窓の杜 - 【NEWS】米MS提供の.NET開発向けカスタムコントロール集「Visual Basic Power Pack」
www.forest.impress.co.jp/article/2004/06/24/vbpowerpack.html



293 名前:290 mailto:sage [04/08/17 21:46]
>>292
激しく感謝.ありがとう.


294 名前:デフォルトの名無しさん [04/08/18 18:19]
ファイルの末尾数バイトを削除する簡単な方法ってありますか?
一度全て読み込んだ後削除して上書きしか思いつかなくて。。。

消した後、そのファイルに追加を行うので、
消したい部分のみ上書きする方法でもいいのですが。。。

295 名前:デフォルトの名無しさん mailto:sage [04/08/18 18:37]
簡単……ねぇ?
上書きなら難しいことでもないけど。

int b = 5;
FileStream fs = new FileStream("hoge.txt", FileMode.Open, FileAcceess.ReadWrite);
fs.Position = fs.Length - b;
StreamWriter sw = new StreamWriter(fs);
以下略

296 名前:294 mailto:sage [04/08/18 19:01]
>>295
そっか TextWriter に、予め頭だししておいた Stream をぶち込めばよかったのか
ありがとうございますそれでいけそうです

297 名前:デフォルトの名無しさん mailto:sage [04/08/19 16:55]
>>295
そっか Mamko に、だしておいた Seishi をぶち込めばよかったのか
ありがとうございますそれで子供できそうです

298 名前:デフォルトの名無しさん mailto:sage [04/08/19 16:57]
つまらん

299 名前:デフォルトの名無しさん [04/08/23 08:20]
 C#で複数のマウスイベントを検出することは可能でしょうか?
USBマウスとUSBトラックボールをつなげています。こららの移動情報を個別に取得したいと思います。
どうすれば、よいでしょうか?宜しくお願いしまう。


300 名前:デフォルトの名無しさん mailto:sage [04/08/23 08:25]
>>299
.NET Frameworkのライブラリじゃ不可能。
Raw Input APIを使う必要がある。
参考:ttp://www.hatena.ne.jp/1085972533



301 名前:デフォルトの名無しさん mailto:sage [04/08/23 11:16]
意外にも、DirectInput じゃ区別できないのよね。

302 名前:デフォルトの名無しさん mailto:sage [04/08/25 06:19]
実行ファイルに関連付けられたアイコンをプログラムの中で
使用したいのですが、いい方法はないでしょうか。

なお、今のところ、同一のアイコンファイルを
コンパイルオプションの「/win32icon」、「/resource」の双方を
使って実行ファイルに取り込んでいます。


303 名前:デフォルトの名無しさん mailto:sage [04/08/25 07:12]
>>302
/win32icon は API の ExtractIcon/ExtractIconEx で取り出せる。

304 名前:デフォルトの名無しさん [04/08/26 01:30]
classとstructを簡単に見分ける方法ってある?
ライブラリのやつとかいちいちマニュアル見るの面倒なんだが。


305 名前:デフォルトの名無しさん mailto:sage [04/08/26 02:15]
>>304
VS使ってるならnewのインテリセンスとか。
あんまりclassかstructかを見分ける必要なぞ感じたことがないしな。

306 名前:デフォルトの名無しさん [04/08/26 11:59]
ListBoxを縦に二つに分けることはできないんでしょうか。
MultiColumnではなくて、ひとつの項目を二つの列に分けて表示したいんです。
具体的に何をしたいかというと、エラーの内容と発生時刻を表示したいんですが、
発生時刻を左側に、エラーの内容を右側にわけてリストボックスに表示したいんです。
日付は必ず1行ですがエラーの内容は複数行になる可能性があるので、
文字数揃えて表示・・とかよりも縦に二つに割れたら楽だと思うんですけど、どうやってやるのかさっぱりです。
ListBoxで実現するには、あるいはほかのコントロールで実現するにはどうすればいいんでしょうか。

307 名前:デフォルトの名無しさん mailto:sage [04/08/26 12:13]
>>306
ちゃんと読んではいないけどGoogleのイメージ検索で引っかかったこれはどうだろう。
ttp://www.codeproject.com/cs/combobox/resizablelistbox.asp

//私ならListViewを使うかな……?

308 名前:デフォルトの名無しさん mailto:sage [04/08/26 12:18]
ぶっちゃけ自分で描画したほうが早い

309 名前:デフォルトの名無しさん mailto:sage [04/08/26 14:53]
>>308
めんどくさくね?

310 名前:デフォルトの名無しさん mailto:sage [04/08/27 00:14]
面倒くさいかどうかというのは実装の早さに関して考慮することじゃないような



311 名前:304 mailto:sage [04/08/27 00:43]
>>305
そうか。
コピーするときにcloneがいるかとか
遅くなるのかとか、結構気になるんだが



312 名前:デフォルトの名無しさん mailto:sage [04/08/27 03:39]
チューンナップなぞ遅さが気になってからすればいいんですよ.

早過ぎる最適化は諸悪の(少なくとも大半の悪の)根源なり -- DEK

313 名前:デフォルトの名無しさん [04/08/27 17:15]
AxWebBrowser って ToolTip くっつけられないんだっけ?

314 名前:313 mailto:sage [04/08/27 17:16]
くだらない質問なのにあげちゃった_| ̄|○

315 名前:デフォルトの名無しさん mailto:sage [04/08/27 20:34]
>>305
boxing と unboxing でドツボにはまるぞ。
値型と参照型の違いは押さえておいた方が良い。

316 名前:デフォルトの名無しさん mailto:sage [04/08/27 21:08]
だよね。
struct を lock () して排他したつもり、とか。

317 名前:デフォルトの名無しさん mailto:sage [04/08/27 23:58]
心配しなくてもできねーよ。

318 名前:デフォルトの名無しさん mailto:sage [04/08/28 22:43]
テキストボックスで HOME や END、あまつさえ SHIFT+HOME や SHIFT+END、
CTRL+Z や CTRL+C/V/X を実現するには自分でコードを書かないといけないのでしょうか?

319 名前:デフォルトの名無しさん mailto:sage [04/08/28 22:47]
>>318
まず試せ。

320 名前:デフォルトの名無しさん [04/08/28 23:16]
Windows.Formにプロパティを加えたんだけど、
デザイナのプロパティウィンドウには表示されませんね。

基底クラス(Windows.Form)に加えたプロパティは
派生クラス(Windows.Form)のデザイナに反映される
みたいだけど、自分自身ならなぜだめなのかなぁ。




321 名前:デフォルトの名無しさん mailto:sage [04/08/28 23:51]
>>320
まったく同じレスをどこかで見たなぁ。

322 名前:デフォルトの名無しさん mailto:sage [04/08/29 12:53]
>>321
俺も見た記憶があるので探してみた
pc5.2ch.net/test/read.cgi/tech/1045307942/294

323 名前:306 mailto:sage [04/08/29 14:08]
>>307,308
遅ればせながら・・・
ListViewでいけました。
ありがとうございました。
詳細表示なんてさっぱり思い浮かびませんでした。

324 名前:318 mailto:sage [04/08/29 14:41]
>>319
できました…。幻覚でも見ていたのかもしれません。
でも CTRL+A ってできないんですね。

325 名前:デフォルトの名無しさん [04/08/30 17:43]
1pxの点 . を任意の座標表示するにはどうしたら良いんでしょう?
1,1 - 1,2まで幅1の線を引くと、どうも2pxくらい線が引かれちゃうし
1,1 - 1,1にすると線ができないんです。

326 名前:デフォルトの名無しさん mailto:sage [04/08/30 18:05]
>>325
Bitmap に SetPixel で点を描いて、Graphics.DrawImage で画面に描写。

327 名前:デフォルトの名無しさん mailto:sage [04/08/30 18:13]
他には、
FillRectangle(DrawRectangleは不可)で幅・高さ1の四角を描画。
Graphics.GetHwndで取得したデバイスコンテキストにWin32APIのSetPixelで描画。

……元画像のビットマップを取得できるならBitmap.SetPixelが一番手っ取り早い/速いんだけどねー。

328 名前:デフォルトの名無しさん mailto:sage [04/08/30 19:13]
それ俺も気になって調べたんだけど
点を描画するGraphicsクラスのメソッドはないみたいなんだよね
結局SetPixelで妥協したけど、
Graphicsオブジェクトを使って描画を行うというルールから離れるからあんまりやりたくない

329 名前:デフォルトの名無しさん mailto:sage [04/08/30 19:18]
……327のGetHwndはGetHdcの間違い。
//user32.dllのAPIをまとめたクラスを最近作ってるからhwndまみれでつい。

330 名前:デフォルトの名無しさん mailto:sage [04/08/31 00:59]
>>328
Graphics はベクタ形式を含む一般的なグラフィックを扱うクラスだから、“点”という概念がないのよね。
数学的には、点は半径が無限小の円と等価な存在で、半径0の円は画面に表示できないから。

点、というか、ピクセル単位の処理がしたければビットマップを使えと。

Graphics に元画像のビットマップを取得するメソッドがないのは、
将来的に(Avalon で)、OS 自体をベクタ画像ベースで動くものにするつもりでいるからじゃないかな。



331 名前:デフォルトの名無しさん mailto:sage [04/09/05 13:36]
>>330
目から鱗

332 名前:デフォルトの名無しさん [04/09/08 21:18]
www.atmarkit.co.jp/fdotnet/basics/adonet01/adonet01_01.html
の記事をみてSQL Server 2000を使ってみようと思い立ったんですが、
とりあえず www.microsoft.com/japan/sql/evaluation/trial/2000/ をインストールして
みたのですが、ヘルプをみても使い方がサッパリ分りません。
インストールするとタスクトレイにDBのアイコンがでますが、これのサービスをスタートしようとすると
エラー1069(ログオンに失敗したため、サービスを開始できませんでした)となってしまいます。
これってまず何をすればいいんでしょうか?

333 名前:デフォルトの名無しさん mailto:sage [04/09/09 01:51]
はじめまして。
mobiquitous.com/programming/ietoolbar.html
これを使って、IEツールバーのボタンが押されたらあるページがIEに表示されるように
したいのですが、どうすればIEを操作できるのか見当がつきません。
何か関連ありそうなキーワードがあれば教えてください。よろしくお願いします。

334 名前:デフォルトの名無しさん mailto:sage [04/09/09 12:55]
>>333
Site もしくは Site の IServiceProvider 経由で IID_IWebBrowser もしくはIID_IWebBrowserAppを
得て Navigate すればいいんじゃない?

335 名前:333 mailto:sage [04/09/09 22:37]
>>334
ありがとうございます。
調べてみます。


336 名前:デフォルトの名無しさん mailto:sage [04/09/10 16:44:32]
アプリケーションをフォームが非表示の状態で開始するにはどうやればいいか教えていただけますか?
Application.Run の前に CreateControl して Hide して、Visible を false にしてもなぜか表示されてしまいます・・・


337 名前:デフォルトの名無しさん mailto:sage [04/09/10 17:01:55]
>>336
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbcon/html/vbtsksettingformtobeinvisibleatitsinception.asp

個人的にはApplication.Run()でやることが多いけど。

338 名前:デフォルトの名無しさん mailto:sage [04/09/10 21:30:59]
>>337
これだと確かに表示はされないけれども、Load イベントも上がらないし・・・
普通の Win32 アプリでいう WS_VISIBLE でない状態でウィンドウそのものは作りたい、
というような状況なのです。CreateSuruct でも override してみるかなぁ。

339 名前:デフォルトの名無しさん mailto:sage [04/09/10 21:56:22]
CreateParams を override して WS_VISIBLE を落としてもダメ、
Form の Load イベントで this.Hide() しても this.Visible = false; してもダメ、
Application.Run を Form.ShowDialog にしてもダメ。
(関係ないけどRun の代わりに ShowDialog 使うと Dialog 終了後のメッセージが処理されないので
表示した NotifyIcon を Form が Close される前に消さないとゴミが残る・・・)

VisibleChanged イベントのハンドラで Hide すると何とか消えるけど、一瞬表示されるのでちらつきます。
タスクトレイにいきなり常駐するユーティリティとかどうやってみんな作ってるんだろう。

340 名前:デフォルトの名無しさん mailto:sage [04/09/10 22:03:18]
>>339
>  タスクトレイにいきなり常駐するユーティリティとかどうやってみんな作ってるんだろう。

NotifyIconとかを管理するクラスを作り、その中のContextMenuでフォームのShow/Hideを扱う。
メッセージループはApplication.Run()でメインウィンドウを持たせずに開始する。



341 名前:デフォルトの名無しさん mailto:sage [04/09/10 22:46:49]
>>340
できました!ありがとうございます。

342 名前:デフォルトの名無しさん [04/09/17 11:41:58]
パフォーマンスを計るのにスレッド単位でCPUのTickTimeを取得したいのですが、
(Sleep中または別スレッドが走っている時はカウントしない)
そういうクラス知っている人いますか?


343 名前:デフォルトの名無しさん [04/09/17 11:48:25]
Type.InvokeMemberからBindingFlags.GetPropertyでプロパティを取得する時、
返り値がobject配列なのですが、どうすれば各要素にアクセス可能になるでしょうか。
単に返り値をobjectとして取得することはできたのですが、その後が分かりません・・

344 名前:デフォルトの名無しさん mailto:sage [04/09/17 11:50:48]
>>343
言ってる意味がよくわからない。
もうちょっと具体的に。

345 名前:デフォルトの名無しさん mailto:sage [04/09/17 12:07:17]
ごめんなさい、分かっちゃった。
こうしたかっただけです。

obj = type.InvokeMember("array", BindingFlags.GetProperty, null, doc, new object[] {2});
* これで二番目の要素をゲット

お騒がせしました。

346 名前:デフォルトの名無しさん [04/09/17 14:41:43]
bmp=new Bitmap(filename);
これをdisposeせずに、また
bmp=new Bitmap(filename2);
を呼び出したらメモリー減って行きますか?
それとも、同じ変数のメモリー番地に上書きされるだけですか?

347 名前:デフォルトの名無しさん mailto:sage [04/09/17 14:45:31]
>>346
もちろん新しいメモリが確保される。
インスタンスのサイズが違うかも知れないのに上書きしちゃまずいだろ。

348 名前:デフォルトの名無しさん mailto:sage [04/09/17 14:47:10]
って、参照先じゃなくて変数そのもののアドレスか?
それなら上書きされるが。
つかそんなことに頭を悩ます意味は全くないが。
あとそれとDisposeとは何の関係もない。

349 名前:デフォルトの名無しさん [04/09/17 14:58:36]
bmpの中にある画像データを替えたかっただけなんです。
>って、参照先じゃなくて変数そのもののアドレスか?
>それなら上書きされるが。
という事は、前の画像データが消えて新しい画像データに上書きされるって事ですよね?

350 名前:デフォルトの名無しさん mailto:sage [04/09/17 15:08:05]
> という事は、前の画像データが消えて新しい画像データに上書きされるって事ですよね?

画像データとか言わずBitmapインスタンスと言おうな、こういう場合。

まあ、そんな感じ。
細かく言うなら、「変数が示す参照先が書き変わる」。
変数が、古いインスタンスを丸めてポイして、新しいインスタンスにべったりくっつくわけだ。

//丸めてポイされたインスタンスはいずれGCが片づける。



351 名前:346 mailto:sage [04/09/17 15:10:47]
なるほど、色々ありがd。

352 名前:デフォルトの名無しさん mailto:sage [04/09/17 15:16:45]
>>346微妙に誤解してないか?
>>350の書いてる内容は間違っちゃいないんだけど、
読み方によっては>>346が誤解してしまうように思う。

依然
>という事は、前の画像データが消えて新しい画像データに上書きされるって事ですよね?
のように言ってるからね…
まあ画像データが上書きされるってのを、プログラム上からはというか、
プログラムでの操作上はそのように見えるってだけの意味で言ってるのなら大丈夫かもしれんが…






[ 続きを読む ] / [ 携帯版 ]

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

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