この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 20162|答える: 0

[出典] {"処分されたオブジェクトにアクセスできません。\r\nオブジェクト名: 'Form1'."}.

[リンクをコピー]
掲載地 2016/06/12 16:28:41 | | | |

スレッド間でコントロールを呼び出す際にフォームを閉じる際に例外を回避する方法 は、破棄されたオブジェクトにアクセスできない場合です。
スレッド内のスレッド間でフォームを呼び出し、invokeを使ってフォームコントロールの値を割り当てたりプロパティを変更したりする際、スレッドがフォームを閉じる前に終了しなければ、このような例外が必ず表示されます:ディスポーズされたオブジェクトにアクセスできません。
その理由は、スレッド内でフォームコントロールが呼び出されると、フォームはログアウトされているため、フォームがログアウトされる前にすべてのスレッドから退出しているからです。 この問題を解決するために、以下のコードを追加できます:


例外が出なくなりました。
system.environment.exit(0を呼び出すと、どのスレッドが強制終了してもプログラムを完全に終了でき、プログラムを非常にきれいに終了させます。



FormCloserイベント

フォームが閉じられると、FormClosedイベントが発生します。 このイベントは処理済みです。 これにより、フォームに関するすべてのリソースが解放されます。

このイベントをキャンセルしても、フォームは開いたままです。

フォームがモードダイアログとして表示されたら、「閉じる」をクリックするとフォームが非表示になり、DialogResultプロパティがキャンセルに設定されます。 一部のイベントでDialogResultプロパティを設定することで、ユーザーが右上の閉じボタンをクリックしたときにDialogResultの値を上書きできます。

FormClosed イベント

FormClosedイベントは、ユーザーまたはアプリケーションクラスのCloseまたはExitメソッドがフォームを閉じた後に発生します。

このイベントを使ってフォームのリソースの一部を解放できます。 このイベントを使って入力フォームに情報を保存したり、親フォームを更新したりすることもできます。





先の:C#/Winformバージョン12306のログインで、画像認証コードを手動でクリックできます
次に:クライアントのIPアドレスとポートを取得するためのC#ソケット
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com