c# スレッド 終了(終わらせる)

http://www.atmarkit.co.jp/fdotnet/mthread/mthread02/mthread02_02.html

方法1.

thread.IsBackground = true; // バックグラウンド・スレッドとする
バックグラウンド・スレッドが動作中にメインのスレッドが終了すれば、バックグラウンド・スレッドは強制的に終了し、
アプリケーションも終了する。Threadクラスには、バックグラウンド・スレッドであるかどうかを指定/取得するIsBackgroundプロパティが用意されている。
ちなみにスレッドプールやデリゲートによるスレッドはバックグラウンド・スレッドとして実行される。

方法2.

スレッドを強制的に終了させたいという場合にはAbortメソッドを利用する。
thread.Abort(); // スレッドの強制終了

c# マウス カーソル 待機状態

http://www.atmarkit.co.jp/fdotnet/dotnettips/134waitcursor/waitcursor.html

c# 別のプロセスで使用されているため、プロセスはファイル

           System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(fileName,false,System.Text.Encoding.GetEncoding(932));
          なにかの処理
           streamWriter.Close(); 

というコードのメソッドを二度目に呼び出すと「別のプロセスで使用されているため、プロセスはファイルxxxにアクセスできません」とでてしまう。

http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=601430&SiteID=7

http://okwave.jp/qa3615206.html

http://www.atmarkit.co.jp/fdotnet/dotnettips/027dispose/dispose.html

によるとガーベージコレクタがちゃんと働かなくて、資源を解放していないのが問題らしい

streamWriter.Dispose(); 

を入れればいいみたいだが、それでは不完全で、

using (SampleClass sample1 = new SampleClass()) {
 // 何かの処理
} 

がスマートで完全に資源を解放してくれる。

usingステートメントは初めて使った


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-01-20 (日) 09:35:05 (4112d)