- くだすれDelphi(超初心者用)その55
755 :デフォルトの名無しさん[sage]:2014/03/24(月) 07:36:57.69 ID:Eiiayiu7 - >>746
終了したスレッドが勝手に動き出すとかないですから問題無いですよ。 あなたスレッドの動作や意味を間違えたますよね完全に。 多分Delphiしかできない人なんでしょうけど他言語も触ってみると良いですよ。
|
- くだすれDelphi(超初心者用)その55
756 :デフォルトの名無しさん[sage]:2014/03/24(月) 08:03:56.24 ID:Eiiayiu7 - >>748
それで顧客が納得してくれれば苦労はしないのです。 あなたが親子という概念を既に導入していることからも分かる通り 親側でクローズボタンが押されても子が終了するまで待つという ようなプログラムではダメ出しされるのが通常だからです。 そこで Mythread.terminate; や Mythread.free; が必要になるわけですが FreeOnTerminate=trueだとMythreadが終了してたらアクセスバイオレーションになるから 工夫が必要だよさあどうするというのがメインの論点です。
|
- くだすれDelphi(超初心者用)その55
758 :デフォルトの名無しさん[sage]:2014/03/24(月) 08:15:34.47 ID:Eiiayiu7 - ひとつの解決方法は >>736さんの提示された
FreeOnTerminate=trueのまま工夫する方法です。 もうひとつは私が提示したFreeOnTerminate=falseにして 必要ならガベージコレクト機能を組み込むという方法です。 あとは具体的解決方法も示さずバカだのアホだ のいうだけの人が約1名いるという状況です。
|
- くだすれDelphi(超初心者用)その55
759 :デフォルトの名無しさん[sage]:2014/03/24(月) 08:22:55.85 ID:Eiiayiu7 - >>757
スレッド間通信もひとつの手ですね。 ただそこまで必要ないことのほうが多いです。 DelphiのThreadクラスの優秀さはスレッド間通信を使用しなくても簡単に マルチスレッドアプリができるというところにあると思います。 なお、758は756の続きでありあなたへのレスではありません。
|
- くだすれDelphi(超初心者用)その55
760 :デフォルトの名無しさん[sage]:2014/03/24(月) 08:52:25.38 ID:Eiiayiu7 - >>757を受けてここまでの状況をまとめ直しました。
Q 親子型スレッドを作るにはどうればいいの? A1 >>736さんのようにFreeOnTerminate=trueでサブスレッド側からメイン側のフラグを操作する。 A2 >>757さんのようにFreeOnTerminate=trueで同期オブジェクトやスレッド間通信で処理する。 A3 FreeOnTerminate=falseにして、必要ならスレッドマネージャ(≒ガベージコレクト)機能を組み込む。 番外 具体的解決方法も示さずバカだのアホだのいうだけの人が約1名。
|