Ich versuche einen AllJoyn Consumer mit mehreren Schnittstellen zu implementieren. Das AllJoyn-Menü erstellt die Hilfsdateien für alle Schnittstellen aus der Introspection-XML. Nach dem Hinzufügen des Watcher-Ereignishandlers und dem Starten desselben für alle Schnittstellen wird nur der erste Watcher-Ereignishandler ausgelöst und abgeschlossen.AllJoyn Studio - Multiple Interface Implementierung
zum Beispiel in der LSF Selbstbeobachtung wir vier Schnittstellen daher haben:
AllJoynBusAttachment bus_Consumer = new AlljoynBusAttachment();
watcher_Consumer = new LampStateWatcher(bus_Consumer);
watcher_Consumer.Added += Watcher_Consumer_Added;
watcher_Consumer.Start();
watcher_Details = new LampDetailsWatcher(bus_Consumer);
watcher_Details.Added += Watcher_Details_Added;
watcher_Details.Start();
private async void Watcher_Details_Added(LampDetailsWatcher sender, AllJoynServiceInfo args)
{
Join_Session_Details = await LampDetailsConsumer.JoinSessionAsync(args, sender);
Consumer_Details = Join_Session_Details.Consumer;
if (Join_Session_Details.Status == AllJoynStatus.Ok)
{
var LampName = await Consumer_Details.GetLampIDAsync();
Status_List.Items.Add(LampName.LampID);
}
}
private async void Watcher_Consumer_Added(LampStateWatcher sender, AllJoynServiceInfo args)
{
Join_Session = await LampStateConsumer.JoinSessionAsync(args, sender);
Consumer_Bulb = Join_Session.Consumer;
if (Join_Session.Status == AllJoynStatus.Ok)
{
LightBulbs.Add(Consumer_Bulb);
}
Consumer_Bulb.SessionMemberRemoved += Consumer_Bulb_SessionMemberRemoved;
}
In diesem Fall wird nur die Watcher_Consumer_Added
abgefeuert wird und abgeschlossen, wo als die Watcher_Details_Added
gefeuert wird, aber nicht abgeschlossen.
Wie kann ich beide Prozesse abschließen. Ist die obige Methode korrekt, um mehrere Schnittstellen auf dem Verbraucher zu implementieren?
P.S. : Dies wird verwendet, wird die AllJoyn Studio-Erweiterung für VS2015 läuft auf Microsoft Windows 10