J'ai un thread parent (non-IU) qui crée des threads enfants pour effectuer des tâches - le parent doit attendre que certaines tâches soient terminées en le fil de l'enfant - cela ne signifie pas que l'enfant est fini mais seulement qu'il a atteint un certain point et le parent peut maintenant continuer le traitement ...Notifier le thread parent lorsque l'enfant a effectué une certaine action [C#]
Pour illustrer s'il vous plaît se référer au code ci-dessous, évidemment ce n'est pas ce que mes enfants le font mais cela montre ce que j'essaie d'accomplir. Rappelons qu'aucun d'entre eux sont des fils UI ...
// Parent Thread
Thread childThread = new Thread(new ThreadStart(Manage));
childThread.IsBackground = true;
childThread.Name = "NamedPipe Manager";
childThread.Start();
while (true)
{
... do some work ...
// wait for signal from MainThread to proceed //
... do more work
}
// Child Thread
private void Manage()
{
... do some work ...
... call some functions ...
// SIGNAL TO PARENT THAT IT CAN CONTINUE //
... do more work ...
... call more functions ...
}
Quelqu'un a des suggestions sur la façon dont je peux accomplir cette tâche de façon thread-safe? Toute aide serait grandement appréciée. Merci,
Que se passe-t-il s'ils sont dans une autre classe? Par exemple, Pareant crée A = new A(); et à l'intérieur de A nous lançons un thread qui doit. Set() le ManualResetEvent() dans le parent? – Shaitan00
Transmettre la référence du signal en tant que paramètre au constructeur A – dtb