2011-03-31 6 views
2

私はTThreadを作成するときにスレッドにパラメータを渡すことができないので、グローバル変数を使用する必要がありますか? 私はEmbarcaderos Rad Studio C++ Builder 2010を使用していますWindows APIのようなパラメータでTThreadを実行するには?

+0

私はC++ Builderの代わりにDelphiの人です。 Delphiでは、CreateSuspendedブールの代わりに、またはCreateSuspendedブールで他のパラメータを受け入れるようにコンストラクタをオーバーロードします。ビルダーでも同じです。 (私はコードを提案することができないので、答えの代わりにコメントとして投稿する) –

答えて

6

あなたはTThreadから派生したクラスを持っていますか?クラスのコンストラクタに追加の引数を渡すことができますか(普通であると思われるbool suspendedを超えて)?

+0

はい、それは働く – Sergey

5

別のコンストラクタを提供する代わりに、オブジェクトを作成する時点から開始するまでの間にスレッドのプロパティを割り当てるだけで済みます。

bool suspended = true; 
TSergeyThread* thread = new TSergeyThread(suspended); 
thread->Property1 = 4; 
thread->SetValue("foo"); 
thread->Start(); // or ->Resume(), if your VCL is too old 

ただし、すべての情報をコンストラクタで提供する方がよいでしょう。 (RAIIとそのすべて)。

関連する問題