- PR -

.NETリモーティングのスレッドIDについて

1
投稿者投稿内容
しゅうほう
会議室デビュー日: 2006/03/28
投稿数: 2
お住まい・勤務地: 北海道
投稿日時: 2006-03-28 10:37
初めて投稿させていただきます。
しゅうほうと申します。

現在、.NETリモーティングを活用しアプリケーションの開発を
実施していますが、解決させたい疑問があるため
質問させていただきます。

尚、開発は.NET FrameWork 1.1 言語はC#.NETです。

【疑問点】
Singletonでリモーティングオブジェクトを生成し、
生成したリモーティングオブジェクトクラスのメソッドを
コールするとリモーティングオブジェクトのスレッドIDが
前回と同一ではない場合がある。(クライアントは1つのみ)

確認のためコールされたメソッド内で、GetCurrentThreadId()を呼ぶと
必ずしも同一のスレッドIDが帰るわけではありませんでした。

これは、.NET Remotingの仕様なのでしょうか?
また、リモーティングオブジェクトのスレッドIDを固定に
持つことが可能でしょうか?

どなたかご存知の方おりましたら、ご教授ください。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-28 12:10
引用:

しゅうほうさんの書き込み (2006-03-28 10:37) より:

コールするとリモーティングオブジェクトのスレッドIDが
前回と同一ではない場合がある。(クライアントは1つのみ)


前回と? 同一でない場合は普通にあるでしょうね。

引用:

確認のためコールされたメソッド内で、GetCurrentThreadId()を呼ぶと
必ずしも同一のスレッドIDが帰るわけではありませんでした。
これは、.NET Remotingの仕様なのでしょうか?


System.AppDomain.GetCurrentThreadId() のことでしょうか?
System.Threading.Thread.CurrentThread.GetHashCode() のことでしょうか?

どちらにしても毎回同じである保証はないでしょうけど。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
しゅうほう
会議室デビュー日: 2006/03/28
投稿数: 2
お住まい・勤務地: 北海道
投稿日時: 2006-03-28 13:00
じゃんぬねっと様
返答ありがとうございます。

引用:

じゃんぬねっとさんの書き込み (2006-03-28 12:10) より:

前回と? 同一でない場合は普通にあるでしょうね。

System.AppDomain.GetCurrentThreadId() のことでしょうか?
System.Threading.Thread.CurrentThread.GetHashCode() のことでしょうか?

どちらにしても毎回同じである保証はないでしょうけど。




ThreadIdの確認はWin32ApiのGetCurrentThreadId()を使用しました。
(リモーティングオブジェクトからC++で作成したDllのメソッドを
コールしていたため、その中で。)

やはり、毎回同じ保証は無いのですね。
デバック環境で実施中に同一のリモートオブジェクトを使用しているにも
関わらず。スレッドは切り替えられるので、疑問に思ったのです。

ありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)