- PR -

終了処理について

投稿者投稿内容
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2007-04-05 11:12
引用:

mioさんの書き込み (2007-04-05 10:02) より:
過去の自分のコードを見てみました。終わりたいところでは、Unload Meしてました。
で、Form_Unloadの最後でEndしてました。



まぁ、アプリとしての後処理をやった後なら害はなさそうですね。

Endは、VB6以前のというか、主にVB4や、VB5の初期の頃に
いろいろなBBSで定期的に話題になっていましたように思います。
ローカル変数に対するSet XXX = Nothingなんかも。
どちらも必要のない処理ですが、都市伝説みたいなもので、
割と多くの人が「とりあえずやっとけ」的に言っていた時代がありました。
#一部は昔のVBのバグ等への対応の名残だったりするものもあるかもしれません・・・

ちなみにForm_Unloadの最後にEndをする理由は本質的な問題のごまかしです。
よくあったのが、Unload後にFormのプロパティを操作してしまい、
暗黙にFormがLoadされてしまって「何故か終了しない!!!」と困ったあげく
Endを書けば終了するぞ、うん、これが正解だ、と勘違いした人が多かったから
というのが真相だと思います。
(会社などで悪しき慣習が口伝で伝えられたり・・・orz)

#そして、2005で暗黙のインスタンス復活!ヽ(´ー`)ノ


[ メッセージ編集済み 編集者: よねKEN 編集日時 2007-04-05 11:18 ]
YASUYOKA
ベテラン
会議室デビュー日: 2007/03/19
投稿数: 71
投稿日時: 2007-04-05 11:34
引用:

よねKENさんの書き込み (2007-04-05 11:12) より:
引用:

mioさんの書き込み (2007-04-05 10:02) より:
過去の自分のコードを見てみました。終わりたいところでは、Unload Meしてました。
で、Form_Unloadの最後でEndしてました。


Endは、VB6以前のというか、主にVB4や、VB5の初期の頃に
いろいろなBBSで定期的に話題になっていましたように思います。



VB6の時代ですが、ActiveX DLLでサブプログラムを数百個作って、
どれかのモジュールにて「End」ステートメントを使用されていて、
必ず処理の途中で死んでいたのを見たことがあります。
ひろ@ya
大ベテラン
会議室デビュー日: 2006/02/23
投稿数: 168
投稿日時: 2007-04-05 14:35
余談ですが、VB6でマルチスレッドのActiveX EXEを作ると、End では終了出来ない事もあります。きちんと全オブジェクト(フォームを含む)を破棄すれば終了出来ますが。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-04-05 15:25
引用:

よねKENさんの書き込み (2007-04-05 11:12) より:

ローカル変数に対するSet XXX = Nothingなんかも。
どちらも必要のない処理ですが、都市伝説みたいなもので、


ループ中はあった方が良い場合もあります。(Excel のオブジェクトたちなど)

よく見かけるのが、プロシージャの最後にまとめて Nothing というパターンです。
これこそ本当に意味ないですよね。

--

以下は完全な脱線話です。

引用:

(会社などで悪しき慣習が口伝で伝えられたり・・・orz)


私もその 1 被害者でした。
むしろ 「Close よりか Nothing で解放する方が大事」 だと言われました。

それは、大きな間違いです。
(どうも、その人は参照の解放を 「リソースの破棄」 だと勘違いしているみたいです)

参照が解放された時に Close されているのは、たまたまライブラリが
デストラクタで (| 参照カウントが完全にデクリメントされた時に) 後始末をしているからです。

# と反論してもわかってもらえないのは 「定説」 です。

引用:

#そして、2005で暗黙のインスタンス復活!ヽ(´ー`)ノ


一応、使わせないようにすることはできますので、そのように対応する予定です。

# 次期 VB (というか、Visual Studio) では、オプションを設けてくれる予定です。
# Visual Studio 2005 発売前にも Wish したのですが、間に合いませんでした...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

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