Как правильно передать дескриптор, используя core.thread
в D? Я пытался сделать это так, но дескриптор изменится, и я не знаю, почему:
void WorkerThread(handle hand)
{
…
}
…
auto worker = new Thread( { WorkerThread( m_handle ); } );
Как правильно передать дескриптор, используя 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 );
}