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


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

ふらっとC#,C♯,C#(初心者用) Part30



1 名前:デフォルトの名無しさん [2008/08/20(水) 17:15:27 ]
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

前スレ

ふらっとC#,C♯,C#(初心者用) Part29
pc11.2ch.net/test/read.cgi/tech/1216734995/

401 名前:395 mailto:sage [2008/09/09(火) 15:08:47 ]
>>400
当然読んだに決まってるじゃん。
リンク先のサンプルは右クリックメニューにオリジナルメニューを追加させるようなアプリのサンプルなんだから、
右クリックで開かれるファイル名を取得したいという質問自体が意味不明なんだよ。
あくまでレジストリにキーを追加するだけのアプリと、コマンドライン引数を取得することは全く結びつかない。
コマンドライン引数を取得したいのならばそう言えばいいだけで、リンク先の記事は何の意味もなさないんだよ。

402 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:40:12 ]

 政治板にあった的確なAAを紹介します!!
          ↓

【選挙前】 郵政民営化に賛成か否か 国民投票です

    自民党↓ 小泉
    , - ,----、
    (U(    )  
    | |∨T∨   
    (__)_)    国民様、へへへーっ
          ↓
          ↓
【選挙後】
自民党↓   ガソリン暫定税率維持
         後期高齢者制度制定
   ∧_∧    日雇い派遣 制限撤廃
  ( ´∀`)     郵政造反組復党
  (   /,⌒l     & 天下り先独法の特別会計ジャジャ漏れは完全に温存 !!
  | /`(_)∧_0.  & 二人の総理投げ出し他人事で辞任!
  (__)(´∀`; )⊃⌒⊃   ← ← ← (一般民間人)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


403 名前:デフォルトの名無しさん [2008/09/09(火) 16:18:33 ]

ageろよww


404 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 19:14:16 ]
コピペ君って馬鹿だな、まで読んだ。

405 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 21:29:25 ]
>>396
ありがとうございます。
期待していた動きをさせることができました。

406 名前:デフォルトの名無しさん [2008/09/10(水) 11:30:15 ]
メソッドの引数にプロパティがたくさんあるクラスを渡そうとしています。
引数を渡す時に ref をつけて渡した方が、実行速度上 ( 微々たるものかもしれませんが ) 有利になるのでしょうか。
ref を付けずに渡すと、メソッドに渡す時に引数がコピーされると、プログラミング c# に書かれていました。
どうなのでしょうか?


407 名前:デフォルトの名無しさん [2008/09/10(水) 11:31:53 ]
用途による としか言いようがない

408 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 11:32:39 ]
されない。
そう書いてあったならその本が間違ってる。
もしくは値型についての話と混同してる。


409 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 11:33:50 ]
厳密にはクラスでも引数はコピーされるが、今の話はそういう話ではないはず。




410 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 11:36:47 ]
大きな値型なら速くなる
クラスなら付けない方がたぶん速い

411 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 11:37:43 ]
そうじゃなくて、そのメソッドをよく呼ぶときに実行速度が問題となるってこと。

412 名前:デフォルトの名無しさん [2008/09/10(水) 11:42:57 ]
>>407-411
お返事ありがとうございます。
なかなか難しいですね。

私の理解としては、メソッドの引数が、
クラスの場合→インスタンスのアドレスが渡される ( コピーされない )
値型の場合→ボックス化?され ( つまりコピーされ ) 渡される
という理解ですが、良いのでしょうか?

クラスの場合に、そのクラス中に値型のフィールドが含まれることもあるかと思いますが、そちらはよく分かってません。





413 名前:デフォルトの名無しさん [2008/09/10(水) 11:43:13 ]
refキーワードは速度じゃなく、メンバの使われ方が問題なんだが

414 名前:デフォルトの名無しさん [2008/09/10(水) 11:44:14 ]
よく考えなくても分かるけど、参照がコピーされたのに、参照に含まれる一部が実体とかおかしいだろ

415 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 11:47:40 ]
意味が分かりませんw

416 名前:デフォルトの名無しさん [2008/09/10(水) 11:47:47 ]
>>414
なるほど。

では、まとめると、
クラスの場合→インスタンスのアドレスが渡される ( コピーされない )
クラスのメンバに値型が含まれる場合→インスタンスがコピーされアドレスが渡される
値型の場合→ボックス化?され ( つまりコピーされ ) 渡される
という理解ですが、良いのでしょうか?


417 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 11:52:17 ]
とりあえずいろいろコード書いて試してみりゃいいよ

418 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 11:57:14 ]
>>416

これ読んどけ。じっくり読むと理解できるから。流して読むと川俣ワールド迷走することになるが

www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_006/cs2_006_01.html

419 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:06:54 ]
>>414だいぶ混乱してる。
少なくとも今の話にはボックス化は無関係。
ただしコピーされるってのは間違ってない。
値型メンバはクラスのインスタンスにそのまま埋め込まれてる。
参照型メンバはクラスのインスタンスに、まあ君の理解で言うとアドレスが埋め込まれてる。




420 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:09:11 ]
>>416

× クラスのメンバに値型が含まれる場合→インスタンスがコピーされアドレスが渡される
○ クラスのメンバに値型が含まれる場合→インスタンスを保持している変数のアドレスが渡される


// 例

class Hoge {
private string msg;
Hoge(string s) {
msg = s;
}
public override string ToString() {
return msg;
}
static void foo(ref Hoge fuga) {
// Main関数のhogeが指しているインスタンスが別のものになる。
fuga = new Hoge("Foo");
}
static void Main(string[] args) {
Hoge hoge = new Hoge("Hello");
Console.WriteLine(hoge.ToString());
foo(ref hoge);
Console.WriteLine(hoge.ToString());
}
}


421 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:15:25 ]
値型は実体がコピーされる。
ただし、参照型に含まれる値型は値型の参照がコピーされる。

以上

422 名前:デフォルトの名無しさん [2008/09/10(水) 12:15:53 ]
もう難しすぎる!

423 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:16:01 ]
>>413
XNA Frameworkとか覗いてみたらわかるよ
決して良い使い方だとは言えないんだけど

424 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:23:02 ]
そういう人が書いた記事よりもMSDNを熟読するほうがいいよ。

425 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:24:31 ]
そりゃC#のボキャブラリだけで考えていたら難しいだろう
Cかアセンブラで関数のメカニズム(スタックフレーム)について
勉強してから戻ってくるといいよ

そういえばMSILの逆アセンブラなんかもあったような

426 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:30:05 ]
でたらめが入りまじってるから、
ちゃんとした書籍で調べることをお薦めする。

ああ、ひと目でわかるとか、あんなのは駄目だぜ。
こちらはVB版だが、確か同じ間違いの記述がある。

427 名前:デフォルトの名無しさん [2008/09/10(水) 13:35:40 ]
>>417-426
スタックやヒープなどからいろいろと勉強して理解してみます。
アドバイスありがとうございます。

逆に ref を使うときってどういう時に使ってますか?


428 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 13:42:06 ]
たまにprivateメソッドで実装の都合で使うかも
外から見えるメンバには絶対使わないな
outは稀に使うけど

429 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 14:31:35 ]
確かにrefはめったにない。
outはたまに使う。




430 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 14:34:39 ]
COMインターフェイス絡みだと[In] refなんてザラだけどこのスレ的にはあんまり関係ないな

431 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 14:39:29 ]
C#2.0 Winアプリで超基本を教えてください。

DataTableをDataSourceプロパティにバインドしたときは
ValueMemberとDisplayMemberを指定することでSelectedItemからTextとValueが別々に取得可能ですが

自分で
コンボ.Items.Add
メソドを使用して項目を追加する場合に SelectedItemからTextとValueを別々に取得できるようにするにはどのようにすればよいでしょうか?

自分でデータテーブルを作成するときに加工しておけばよいのでしょうが、
それはしない方向で実現する手段があればお教えください。

具体的には
データベースにId Name のカラムがありそれぞれ int,string の型になっています。
この先頭に * 全て という項目を入れたいのですが
DBから取得してきたDataTableのId列はint型なので先頭項目を挿入できないのです。

値を取得してきた際、*でなければ全て数値であることが保障されているという前提です。
よろしくお願いします。


432 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 15:39:31 ]
DBNullでいいじゃん?とは思うけど
stringのプロパティ二つ持ったクラス用意
DisplayMember/ValueMemberにそれぞれのプロパティ名設定
一つずつ用意したクラスに詰替え
Items.AddよりDataSourceに配列として設定した方がよくね?

433 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 15:45:45 ]
>>432

>Items.AddよりDataSourceに配列として設定した方がよくね?
確かに・・・

まず提案していただいた方法試してみます!
ありがとうございました。

434 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 17:16:10 ]
DBの項目がIntならそのまま更新できないから「全て」が選ばれたときにどうやって更新するのかは気になるところ


435 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 17:26:13 ]
ArgumentNullExceptionをスローするときに
引数名を文字列で直接指定するのって格好悪い気がするんだけどいい方法ある?

436 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 17:27:24 ]
気のせいだ

437 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 17:39:51 ]
>>435
ない。

リファクタリングと相性が悪いので、どうにかしようという話が出てたが
まだ実現していない。

438 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 18:05:24 ]
internal static Exception ArgumentNull(Delegate method, int paramIndex) {
 ParameterInfo[] parameters = method.Method.GetParameters();
 return new ArgumentNullException(parameters[paramIndex].Name);
}
void Hoge(object arg) { throw ArgumentNull(new Action<object>(Hoge), 0); }
こういうのはどうだろう

439 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 18:11:12 ]
今度は引数の数や順番の変更に弱くなるぞ



440 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 22:58:27 ]
質問です。
WinXPにてadmin権限でログイン後
作成したアプリをインストーラからインストール。
アプリは、カレントディレクトリに対してフォルダを作成したり
ファイルをダウンロードしたりします。

admin権限でログインしているときはうまく動作するのですが、
フォルダに、ユーザからのアクセス件が無いので動作しません。
以下のコードでアクセス権を付加しようとしていますがうまくいきません。
どこが間違っているでしょうか?

System.Security.AccessControl.DirectorySecurity dSecurity =
Directory.GetAccessControl(Application.StartupPath);
dSecurity.AddAccessRule(
new System.Security.AccessControl.FileSystemAccessRule(
System.Environment.UserName,
System.Security.AccessControl.FileSystemRights.FullControl,
System.Security.AccessControl.AccessControlType.Allow
));
Directory.SetAccessControl(Application.StartupPath, dSecurity);



441 名前:440 mailto:sage [2008/09/10(水) 23:00:07 ]
質問訂正です。
WinXPにてadmin権限でログイン後
作成したアプリをインストーラからインストール。
アプリは、カレントディレクトリに対してフォルダを作成したり
ファイルをダウンロードしたりします。

admin権限でログインしているときはうまく動作するのですが、
権限無しのユーザでログインすると
フォルダにユーザからのアクセス件が無いので動作しません。
以下のコードでアクセス権を付加しようとしていますがうまくいきません。
どこが間違っているでしょうか?

System.Security.AccessControl.DirectorySecurity dSecurity =
Directory.GetAccessControl(Application.StartupPath);
dSecurity.AddAccessRule(
new System.Security.AccessControl.FileSystemAccessRule(
System.Environment.UserName,
System.Security.AccessControl.FileSystemRights.FullControl,
System.Security.AccessControl.AccessControlType.Allow
));
Directory.SetAccessControl(Application.StartupPath, dSecurity);


442 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 23:25:25 ]
>>441
フォルダのアクセス権がないユーザーが、そのフォルダのアクセス権を変更することはできない。
当たり前のことですな。

443 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 23:32:08 ]
お前馬鹿かよ。
何やろうとしてるか冷静に考えてみろ。


444 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 00:08:28 ]
C#もVBと同じ Optional 引数は使えますか?


445 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 00:27:28 ]
いいえ

446 名前:デフォルトの名無しさん [2008/09/11(木) 00:43:03 ]
adminとuserがひとつのアプリを共有し
ファイルディレクトリ操作を行う場合
どういう実装をすればいいのでしょうか?

447 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 01:05:23 ]
userに権利が無い操作を、できなくすればいいのでない?

448 名前:441,446 mailto:sage [2008/09/11(木) 01:51:14 ]
>447
自分がadminかそうじゃないかを知る方法ってあるのですか?
元々その辺から調べてたのですが全くわかりませんでした。

449 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 06:02:46 ]
>>448
WindowsIdentityとWindowsPrincipalの組み合わせで。
www.atmarkit.co.jp/fdotnet/dotnettips/347rolebasesec2/rolebasesec2.html



450 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 11:40:40 ]
C# 2.0のアプリケーション構成ファイルで接続文字列を設定し
DbProviderFactoriesクラスからGetFactoryメソッドを使用した上でDBへ接続を行いたいと思っています。

構成ファイルの方は設定しており
<add name="プロジェクト名.Properties.Settings.ConnectionString"
connectionString="Provider=HOGE-;Data Source=hogehoge"
providerName="System.Data.?????" />
このような記述がされております。

このときPG側から接続文字列の設定を読み取ることは標準でできるのですが ProviderName
の部分(System.Data.?????)を取得するにはどのようにすればいいのでしょうか?

設定ファイルの設定はC#の「プロジェクトの設定のエディタを使用しております。
よろしくお願いいたします。


451 名前:441 mailto:sage [2008/09/11(木) 14:55:32 ]
>449 ありがとうございました。ようやく前進できました。

もうひとつ質問ですが、
System.Net.WebClient でファイルのDLを行う場合、
拡張子exeのファイルは環境によっては弾かれるということはありえますか?

拡張子exeのファイルは拡張子を変えてDLしたあとリネームした方がいいのでしょうか?
それとも、zipファイルとしてDLしたあと展開するのがベターでしょうか?

452 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 22:11:46 ]
C#でWindowsの音量(マスターとか、WAVEとか、ラインインとか)を
直接操作できるような方法ってあるんでしょうか?

453 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 22:16:22 ]
Win32API

454 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 22:17:24 ]
C# api MIXIERCAPS あたりで検索して味噌

455 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 22:20:22 ]
err
s/MIXIERCAPS/MIXERCAPS/

456 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 23:07:10 ]
>>450
これ以上ないくらい普通に取れるが、どこで引っかかってるの?


457 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 09:01:18 ]
>>456
おはようございます。

Properties.Settings.Default.ConnectionString
で接続文字列は取得できるのですが
Properties.Settings.Default.ProviderName
というプロパティが存在せず取得できないということです。


458 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:42:58 ]
コンテキストメニュー「1」又は「2」からフォーム「A」を
開くときに、フォーム「A」はどちらのコンテキストメニューから
開かれたのか知るためにはどうすればいいのでしょうか。

459 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:51:46 ]
DataGridViewの表示がやたらと遅いんですが、
改善策はあるんでしょうか?
フォームにDataGridViewを置いて起動→
10行くらい適当に入力→
最小化、最大化で、上から順にズラズラと再描画されています。
PCは最近のものなのでスペックは悪くありません。



460 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 13:16:45 ]
>>458
フォームAにそういうプロパティを実装する。
あとは呼び出す前に設定するだけ。

461 名前:デフォルトの名無しさん [2008/09/12(金) 15:30:53 ]
Form1にシリアル通信をしてオープンしている状態で、別のフォーム(Form2)を呼び出して、
そのまま通信しようとするとエラーが起きてしまいます。
どうすればよいでしょうか?

462 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 15:32:27 ]
エラー(笑)

463 名前:デフォルトの名無しさん mailto:sage(笑) [2008/09/12(金) 15:36:04 ]
エラーというかポートが閉じられているとでます。

464 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 16:02:51 ]
何がでるって?

465 名前:デフォルトの名無しさん mailto:sage(笑) [2008/09/12(金) 16:08:04 ]
'System.InvalidOperationException' のハンドルされていない例外が System.dll で発生しました。

追加情報: ポートは閉じられています。

です

466 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 16:10:00 ]
>そのまま通信しようとすると
って具体的に何したの

467 名前:デフォルトの名無しさん mailto:sage(笑) [2008/09/12(金) 16:12:08 ]
データを送ろうとしてます。
Form1からは正常に動きます

468 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 16:29:07 ]
ズコー

469 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 16:35:43 ]
いいよいいよー



470 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 17:02:41 ]
Form2はForm1からシリアルのインスタンスもらってそれを操作しようとしたの?
スレッドは単一?

471 名前:デフォルトの名無しさん mailto:sage(笑) [2008/09/12(金) 17:08:46 ]
はい

472 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 18:41:45 ]
メル欄ふざけてるの?

473 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 18:55:07 ]
はい

474 名前:デフォルトの名無しさん mailto:sage(笑) [2008/09/12(金) 19:27:06 ]
>>473
違う

>>472
違う

非アクティブ状態でも、シリアルポートはOPENにしたいんだーーーーーーーーーーーーーーーーーー


475 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:29:54 ]
メル欄真面目なの?

476 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:47:56 ]
まじめです。
マジレス頼みます

477 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 20:18:23 ]
VBのMSCommじゃないんだから(いやMSComm使ったってそうだが)Formの状態と
SerialPortクラスの例外は普通は何の関係もないはずだが。

っていうかまずハンズオンか何かにあったサンプルコードを理解するところから
はじめたらどう?

478 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 01:11:49 ]
シリアルポートって1つしかOPEN出来ないとかそういう話じゃなくて?

479 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 14:24:46 ]
は?



480 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 17:28:02 ]
め?

481 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 17:32:19 ]
は?

482 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 17:47:15 ]
め?

483 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 17:48:11 ]
学?

484 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 17:49:12 ]
園?

485 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 17:58:03 ]
Windows フォームアプリで、System.Threading.Timer で一定時間ごとにある操作をしてフォームに文字列を表示しています。(30ms 毎に Timer が起動)
文字列はちゃんと表示されているのですが、フォームの他のコントロールが描画されず真っ白のままです。
System.Windows.Forms だと正しく動作するのですが、どうしたらよいのでしょうか?


486 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 18:07:52 ]
System.Windows.Forms を使う

487 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 18:10:02 ]
>>485
できた。
this.Update();
Application.DoEvents();
を追加した。

488 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 18:29:34 ]
DoEvents()が出てきたら何か考え方がおかしいと疑ったほうがよい

489 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 20:28:52 ]
>>487
残念だが多分正しくは出来てない気がする。
デバッグ実行したら例外になったりしないか?
まあ見てないから分からんけども。



490 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 03:52:20 ]
ずっと動かしてたら落ちるだろうなあ

491 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 09:00:39 ]
>>488-490
確かに表示は更新することは出来ましたが、
フォームを終了させると例外が発生しています。
タイマの delegate でフォームを更新させるために呼んでいる Invoke メソッドで InvalidOperationException が発生しました。
30ms 毎に Timer を起動していますが、行っている処理の時間がかかりすぎて、次の30ms までに終了せず、タイマが ThreadPool にたまりすぎなのだろか?


492 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 11:10:13 ]
どんな処理してるわけ?


493 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 11:56:13 ]
毎回起動しなおしてんの?

494 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 12:08:16 ]
ま、Invokeはハンドルが破棄された後に呼び出すと例外になるので、
とりあえずInvokeする前にハンドルがあるか確認するか、
確実を期するなら自前でフラグ管理と同期を行うか、
まあ少なくともどっちかは必要。

その上で他にも問題があるかはまた別の話。


495 名前:デフォルトの名無しさん [2008/09/14(日) 12:20:56 ]
30msごとにタイマー起動してフォームを更新っていったいどんな処理しているの?
その設計自体を根本から見直す方が先決だと思うんだけれど。


496 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 22:27:11 ]
色んな要求あるんだから、お前の小さい視点でレスするな

497 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 22:45:46 ]
点に大きいも小さいもないよ。

498 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 22:48:30 ]
ん?悔しかったの?w

499 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 04:08:33 ]
デリゲートは標準でマルチキャストですが
シングルキャストデリゲートってどう作るんですかね?



500 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 09:56:21 ]
C#ってよりCLRじゃ無理






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

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

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