0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

c++ builder XE4 > TThread > Suspended()後のStart() > 実行中または一時停止中のスレッドに対してはStartを呼び出せません

Last updated at Posted at 2015-05-07
txt.動作確認
C++ Builder XE4

TThreadに関して、最近のC++ BuilderではResume()は非推奨になりStart()を使ってくださいとのこと。

しかしながら、以下のコードはStart()のところでエラーが出る。

thread1->Suspend();
...
thread1->Start();

エラーメッセージ:実行中または一時停止中のスレッドに対してはStartを呼び出せません。

Start()をResume()に戻すとこのエラーは出なくなる。

以下が関係しそう。
SO

"Cannot call start on a running or supsended thread"

上記の細かい部分は読み切れていない。

以下の方法ではResumeに相当する処理ができたが、正しい方法ではないかもしれない。

// thread1->Start(); // Error: Cannot call start on a ...
thread1->Suspended = false;

非推奨のResume()を使うのとどちらがいいのか悩ましいところではある。

Suspended = falseあるいはStart

(追記 2018/10/12)

下記に「SuspendedをFalseにする、やStartを使う」という回答がIlyaによりある。
https://stackoverflow.com/questions/1418333/tthread-resume-is-deprecated-in-delphi-2010-what-should-be-used-in-place

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?