Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
クラスの共有メソッドについて
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=2475#CommentId19667
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
刈谷勇
 ()
投稿日時
2008/7/21 18:54:00
Asiansさん、はじめまして。
自分もVB勉強中なので、わかる範囲でお答えします。
>>下手に共用メソッドを使っているとバグのもとになると知人に指摘されました
処理の内容によると思います。
概略でいうと、
メソッドの処理が自分の中のみに影響するもの、
たとえば、引数で与えられた金額の消費税を計算する関数では、いくら並列処理になっても問題ないと思います。
逆に、自分の関数外へ影響を及ぼすものには注意が必要だと思います。
たとえば、メソッド内でSQLのテーブルを更新するような処理の場合、ほぼ同時にこの関数を呼ばれた場合、ロジックによっては、実際にSQLを書き出すタイミングが関数を呼ばれた順序と逆転してしまうこともあると思います。
>>更に調べてみるとマルチスレッドの同期を取るためにSyncLockステートメントというのが存在し,これを共用メソッドの入り口と出口で利用すれば重複して実行されるのが防げるのではないかと思うのですが
実は自分もつい最近調べたばかりなので、実際に検証はしていないのですが、
[MethodImpl(MethodImplOptions.Synchronized)]
をメソッドの頭に書いておけばいいと思います。
有識者の方
間違った発言がありましたら、ご指摘願います。