Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
クラスの共有メソッドについて
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=2475#CommentId19666
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
Asians
 ()
投稿日時
2008/7/20 17:22:00
お世話になってます
VB6の頃は標準モジュールに色々な関数を作った物を利用してプログラムを作っていましたが内容にもよるのでしょうがVB.Netではクラスを利用して同様のことをする方が効率が良いように聞きました
クラスに記述するメソッドには共用メソッドと非共用メソッドがあって共用メソッドはインスタンスに属するメンバへのアクセスをしないのであればインスタンスを生成せずにメソッドが利用できるのですよねぇ
この感覚はVB6の頃の標準モジュールの雰囲気に近く馴染みやすいのでVB6の頃に作った関数をこのクラスの共有メソッドで作ろうと思うのですがVB.Netはマルチスレッドがあって下手に共用メソッドを使っているとバグのもとになると知人に指摘されました
この知人も別の人に注意されただけでマルチスレッドの場合の共有メソッドの危険性やマルチスレッドそのものがよく理解できていないそうなので,私なりにマルチスレッドを調べたところマルチスレッドによってメソッドが重複して実行されることがこの危険性なのかなぁと考えました.
更に調べてみるとマルチスレッドの同期を取るためにSyncLockステートメントというのが存在し,これを共用メソッドの入り口と出口で利用すれば重複して実行されるのが防げるのではないかと思うのですがこの方法で良いのでしょうか
また共用メソッドの危険性は他にもあるのでしょうか