C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ThreadのCancel方法について


(過去ログ 115 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■67753 / inTopicNo.1)  ThreadのCancel方法について
  
□投稿者/ Toy (1回)-(2013/08/30(Fri) 16:07:20)

分類:[C#] 

お世話になります。

開発環境:VB2012,C#

重い処理を別スレッドで処理するプログラムを作成しております。
スレッドをキャンセルする場合にAbortを使用するとろこまで作成したのですが、
スレッド内の重い処理というのがC言語のdll関数であり、
dll内で処理中にAbortしても、スレッド内でcatchされず、
exeを終了してもプロセスが残ってしまいました。

回避方法がありましたらみなさまの知恵をお借りしたいと考えています。
よろしくお願いいたします。

引用返信 編集キー/
■67759 / inTopicNo.2)  Re[1]: ThreadのCancel方法について
□投稿者/ shu (374回)-(2013/08/30(Fri) 17:04:15)
No67753 (Toy さん) に返信

スレッド内でプロセスを起動して
スレッドではプロセスの終了待ちのみする。

プロセス内でdllを呼ぶようにする。

スレッドがAbortされたらプロセスを終了するようにする。

という処理にした方がよいかと思います。スレッドが処理待ちに
なってしまっているのだからスレッドはAbortを処理することが出来ません。

引用返信 編集キー/
■67761 / inTopicNo.3)  Re[2]: ThreadのCancel方法について
□投稿者/ Toy (3回)-(2013/08/30(Fri) 17:42:56)
No67759 (shu さん) に返信

早急な回答ありがとうございます。

Killによる対応に不満があったのですが、
それしかない気がしてきました。

dll関数処理中はスレッドが処理待ちになるという点は
気づきませんでした。
勉強になります。

今回はKillで対応致します。
ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -