2009-08-26 10 views

Répondre

3

Si votre fil ne fait rien tant que vous ne le voulez pas, alors pourquoi le démarrer jusqu'à ce que vous le vouliez?

Si vous souhaitez exécuter votre thread d'arrière-plan, puis suspendre/attendre un événement, puis continuer, une méthode simple consiste à utiliser la famille de classes EventWaitHandle.

Un exemple simple (tiré de this question). Les deux fils doivent avoir accès à ce qui suit:

private ManualResetEvent _workerWait = new ManualResetEvent(false); 

Ensuite, dans votre thread de travail:

_workerWait.WaitOne(); 

Maintenant, il va bloquer jusqu'à ce que vos principaux appels de fil:

_workerWait.Set() 

Pour une une discussion plus complète de vos options et quelques exemples, voir: http://www.albahari.com/threading/

1

Si vous parlez de se réveiller un fil de couchage - Thread.Suspend() (attente) - Thread.Resume() (aller/réveil)

Questions connexes