1
Dでcore.thread
を使用して正しくハンドルを渡すには?私はこのようにそれを行うことを試みたが、ハンドルが変更されますと、私はその理由を知らない:d言語スレッド
void WorkerThread(handle hand)
{
…
}
…
auto worker = new Thread({ WorkerThread(m_handle); });
Dでcore.thread
を使用して正しくハンドルを渡すには?私はこのようにそれを行うことを試みたが、ハンドルが変更されますと、私はその理由を知らない:d言語スレッド
void WorkerThread(handle hand)
{
…
}
…
auto worker = new Thread({ WorkerThread(m_handle); });
Thread
コンストラクタは、コンテキストを持つことができるデリゲートを取ることができます。示されているコードでは、コンテキストは囲み関数です。何らかの理由で問題が発生した場合は、次のようなことができるはずです。
void StartThread(handle hand) {
struct Con {
handle m_handle;
void Go() { WorkerThread(m_handle); }
}
Con con = new Con;
con.m_handle = hand;
auto worker = new Thread(&con.Go);
}