C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: .Netリモーティングでスレッドセーフにするには?


(過去ログ 12 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■3509 / inTopicNo.1)  .Netリモーティングでスレッドセーフにするには?
  
□投稿者/ まいまい (1回)-(2007/05/11(Fri) 19:05:31)

分類:[.NET 全般] 

.Netリモーティングを勉強中の初心者です。

開発環境:WindowsXp , VisualStadio 2003
使用言語:Visual C# .NetFrameWork1.1

.Netリモーティングを使用して、10個のクライアントからサーバの.Netコントロールに対して書込みするようなプログラムを作ろうと思っています。
その場合サーバー側でスレッドセーフ(?)になるよう考える必要があると思うのですが・・・・。
推奨されている方法があれば教えて頂けないでしょうか?

.Netリモーティングでスレッドセーフにするにはどのような方法があるか調べてみましたが・・・。
よくわかるサイトでもよいので教えていただけるとうれしいです。
引用返信 編集キー/
■3510 / inTopicNo.2)  Re[1]: .Netリモーティングでスレッドセーフにするには?
□投稿者/ 囚人 (96回)-(2007/05/11(Fri) 21:18:11)
スレッドセーフという概念自体が分らないという意味ですか?
マルチスレッドでも安全に動くようにすることです。で、それは場合によるので一概に「こうやればいいよ」とは言いにくいです。

同時にある変数に書き込んだらまずいのか、同時にファイルを開いたらまずいのか…etc…。別にそんな事を考える必要がない(読み取り専用のものしかない等)ならそれだけでスレッドセーフです。
引用返信 編集キー/
■3511 / inTopicNo.3)  Re[1]: .Netリモーティングでスレッドセーフにするには?
□投稿者/ 渋木宏明(ひどり) (202回)-(2007/05/11(Fri) 22:24:00)
渋木宏明(ひどり) さんの Web サイト
> 推奨されている方法があれば教えて頂けないでしょうか?

Control.Invoke()

引用返信 編集キー/
■3520 / inTopicNo.4)  Re[2]: .Netリモーティングでスレッドセーフにするには?
□投稿者/ まいまい (2回)-(2007/05/14(Mon) 10:27:36)
To:囚人 様

ご返信ありがとうございます。

> スレッドセーフという概念自体が分らないという意味ですか?
> マルチスレッドでも安全に動くようにすることです。で、それは場合によるので一概に「こうやればいいよ」とは言いにくいです。
>
> 同時にある変数に書き込んだらまずいのか、同時にファイルを開いたらまずいのか…etc…。別にそんな事を考える必要がない(読み取り専用のものしかない等)ならそれだけでスレッドセーフです。

2つのスレッドから同時にコントロールのプロパティを書き換えようとするとまずいのかなと
思いまして・・・・。
実はリモーティングについて調べているときに下記のような記述がありました。
「Windowsフォームのコントロールは、基本的に複数のスレッドからアクセスされることは考慮されていません(スレッドセーフではありません)。」
ということはリモーティングを使用して、リモートオブジェクトからコントロールのプロパティを
書き換えようとすると、タイミングによってはメインのスレッドとリモートオブジェクトのスレッドの両方から
コントロールのプロパティに対して書込みしようとしてしまうのかな(?)と思い質問させていただきました。
質問内容が整理されてなくて大変申し訳ありません。
引用返信 編集キー/
■3521 / inTopicNo.5)  Re[2]: .Netリモーティングでスレッドセーフにするには?
□投稿者/ まいまい (3回)-(2007/05/14(Mon) 10:50:04)
To:渋木宏明(ひどり) 様

ご返信ありがとうございます。

>>推奨されている方法があれば教えて頂けないでしょうか?
>
> Control.Invoke()
>
Invokeを使えばいいんですね!
ありがとうございます。
では、コントロールのプロパティ書き換えをするメソッドを追加し
すべてInvoke()を使ってデリゲート経由で呼び出すようにしてみようと思います。
このような対応方法であってますでしょうか?

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -