Exemplarische Vorgehensweise: Erstellen einer Warteschlange und Arbeiten mit Meldungen
Dieser Dokumentation für die Vorschau nur ist und in späteren Versionen geändert. Leere Themen wurden als Platzhalter eingefügt.]
Die Prozeduren in diesem Thema zeigen den Prozess des Erstellens einer Nachrichtenwarteschlange mithilfe der MessageQueue-Komponente. Mithilfe der Komponente Sie Nachrichten an die Warteschlange senden und Abrufen von Nachrichten aus. Die Meldungen protokollieren Hilfeanforderungen.
Hinweis
Um Warteschlangeninformationen im Server-Explorer anzeigen oder programmgesteuert auf Warteschlangen zugreifen, müssen Sie die Message Queuing Windows-Komponente auf dem Clientcomputer installieren.Verwenden Sie Software Systemsteuerung ein, um hinzuzufügen dieses Dienstes.
Hinweis
Ihr Computer möglicherweise unterschiedliche Namen oder Pfade für einige der Visual Studio-Benutzer Elemente der Benutzeroberfläche in den folgenden Anweisungen angezeigt. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Arbeiten mit Einstellungen.
So erstellen Sie eine Meldungswarteschlange auf dem computer
Im Menü Datei neueauf, und klicken Sie dann auf Project.
In the New Project dialog box, create a Visual Basic or Visual C# Windows Application. Nennen Sie MessageQ.
Server-Explorer öffnen. Weitere Informationen finden Sie unter SO WIRD'S GEMACHT: Zugriff und Initialize Server Explorer/Database Explorer.
Erweitern Sie den Knoten Server.
Erweitern Sie den Knoten für den lokalen Server. Der Knoten für den lokalen Server wird durch die Computername identifiziert.
Erweitern Sie Knoten Meldungswarteschlangen.
Klicken Sie mit der rechten Maustaste auf Private Warteschlangen , und klicken Sie dann auf Warteschlange erstellen.
Geben Sie HelpRequest für den Warteschlangennamen. Wählen Sie Transaktionen als nicht.
Eine neue private Warteschlange mit dem Namen HelpRequest wird erstellt und im Server-Explorer angezeigt.
Hinweis
Sie können auch die neu erstellte Warteschlange über die Arbeitsplatz anzeigen.Klicken Sie mit der rechten Maustaste auf das Symbol Arbeitsplatz auf Ihrem Desktop, und klicken Sie dann auf verwalten.Erweitern Sie den Knoten Dienste und Anwendungen.Erweitern Sie den Nachrichtenwarteschlange Knoten, und wählen Sie das Ordner Private Warteschlangen.Die neue Warteschlange wird in der Warteschlange angezeigt.
Um eine MessageQueue-Komponente für die Meldungswarteschlange hinzuzufügen
Ziehen Sie die HelpRequest -Warteschlange von Server-Explorer auf Ihrem Formular. Das Projekt, für die Warteschlange MessageQueueHelpRequest konfiguriert wird eine neue Komponente hinzugefügt.
MessageQueue -Komponente wird zum programmgesteuerten Zugriff auf die in der HelpRequest Warteschlange enthaltenen Nachrichten im vorherigen Abschnitt erstellt.
Legen Sie die (Name) -Eigenschaft der Komponente MessageQueueHelpRequestQueue.
Erweitern Sie im Eigenschaftenfenster MessageReadPropertyFilter Knoten. Festlegen der Priorität Wert zu true. Dadurch wird die Priorität der Nachricht abgerufen werden, wenn eine Nachricht aus der Warteschlange abgerufen wird.
Die Benutzeroberfläche, die Sie in der nächsten Prozedur erstellen ermöglicht dem Benutzer zum Eingeben von Text für eine Hilfeanforderung und Festlegen der Priorität der Nachricht. Der Benutzer auf eine Schaltfläche senden, um die Anforderung an die Warteschlange senden klickt. Ein Steuerelement DataGridView zeigt den Inhalt der Warteschlange. Die Benutzeroberfläche enthält außerdem Schaltflächen, um das Raster mit den aktuellen Inhalt der Warteschlange aktualisieren und Löschen der Warteschlange.
Zum Erstellen der Benutzeroberfläche
Fügen Sie folgende Steuerelemente von Registerkarte Windows FormsToolboxzu Form1:
Zwei Label-Steuerelemente
Zwei TextBox-Steuerelemente
Drei Button-Steuerelemente
Ein CheckBox-Steuerelement
Eine DataGridView
Legen Sie die folgenden Eigenschaften der Steuerelemente fest:
Steuerelement
-Eigenschaft
Neuer Wert
Label1
Name
Label2
Meldung
TextBox1
txtName
(leer)
TextBox2
txtMessage
(leer)
true
Button1
sendMessage
Nachricht senden
Button2
refreshMessages
Nachrichtenliste aktualisieren
Button3
purgeMessages
Löschen von e-Mail-Liste
CheckBox1
highPriority
Hohe Priorität
DataGridView1
messageGrid
Ordnen Sie die Steuerelemente auf übersichtliche Weise.
Um eine Nachricht an die Warteschlange senden
Doppelklicken Sie im Designer auf die Schaltfläche sendMessage So erstellen Sie den Click -Ereignishandler in der Code-Editor .
Fügen Sie Code hinzu der Methode erstellen Sie eine neue Instanz Message und an die Warteschlange senden und die Meldungsanzeige zu aktualisieren. DisplayMessages-Methode wird in die nächste Schritt geschrieben werden.
Private Sub sendMessage_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles sendMessage.Click Dim theMessage As System.Messaging.Message = New System.Messaging.Message(Me.txtMessage.Text) theMessage.Label = Me.txtName.Text If highPriority.Checked Then theMessage.Priority = Messaging.MessagePriority.Highest Else theMessage.Priority = Messaging.MessagePriority.Normal EndIf helpRequestQueue.Send(theMessage) DisplayMessages() EndSub
private void sendMessage_Click(object sender, System.EventArgs e) { System.Messaging.Message theMessage = new System.Messaging.Message(txtMessage.Text); theMessage.Label = txtName.Text; if (highPriority.Checked) theMessage.Priority = System.Messaging.MessagePriority.Highest; else theMessage.Priority = System.Messaging.MessagePriority.Normal; helpRequestQueue.Send(theMessage); DisplayMessages(); }
Fügen Sie dem Projekt einen Verweis zu System.Data hinzu. Fügen Sie ein Imports-Anweisung (.NET Namespace und Typ) (Visual Basic) oder verwenden (C#-Referenz)System.Data-Anweisung. Weitere Informationen finden Sie unter Verwalten von verweisenund SO WIRD'S GEMACHT: Add or Remove References in Visual Studio.
Fügen Sie eine Methode um den Inhalt der Warteschlange im DataGridView Steuerelement anzuzeigen. Diese Methode verwendet MessageQueue.GetAllMessages-Methode, um alle Nachrichten aus der Warteschlange abzurufen. Die ausgewählten Warteschlangeneigenschaften werden auf ein Objekt DataTable hinzugefügt, als Datenquelle für das Steuerelement DataGridView verwendet wird. Um den Text der Nachricht abzurufen, müssen Sie ein Formatierungsprogramm für die Nachricht zu erstellen.
Private Sub DisplayMessages() ' Create a DataTableDim messageTable AsNew DataTable() messageTable.Columns.Add("Name") messageTable.Columns.Add("Message") messageTable.Columns.Add("Priority") Dim messages() As System.Messaging.Message messages = helpRequestQueue.GetAllMessages() ' Need a formatter to get the text of the message body.Dim stringFormatter As System.Messaging.XmlMessageFormatter = New System.Messaging.XmlMessageFormatter({"System.String"}) Dim index AsIntegerDim am As System.Messaging.Message ' Add each message to the DataTableFor index = 0 To messages.Length - 1 messages(index).Formatter = stringFormatter am = messages(index) messageTable.Rows.Add({am.Label, am.Body.ToString(), am.Priority.ToString()}) Next messageGrid.DataSource = messageTable EndSub
private void DisplayMessages() { DataTable messageTable = new DataTable(); messageTable.Columns.Add("Name"); messageTable.Columns.Add("Message"); messageTable.Columns.Add("Priority"); System.Messaging.Message[] messages; messages = helpRequestQueue.GetAllMessages(); System.Messaging.XmlMessageFormatter stringFormatter; stringFormatter = new System.Messaging.XmlMessageFormatter( new string[] {"System.String"}); for (int index = 0; index < messages.Length; index++) { messages[index].Formatter = stringFormatter; messageTable.Rows.Add(new string[] { messages[index].Label, messages[index].Body.ToString(), messages[index].Priority.ToString() }); } messageGrid.DataSource = messageTable;
}
Um den Inhalt der Warteschlange anzuzeigen
Doppelklicken Sie im Designer auf die Schaltfläche refreshMessage So erstellen Sie den Click -Ereignishandler in der Code-Editor .
Rufen Sie innerhalb des Ereignishandlers Click die DisplayMessages-Methode.
Private Sub refreshMessages_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles refreshMessages.Click DisplayMessages() EndSub
private void refreshMessages_Click(object sender, System.EventArgs e) { DisplayMessages();
}
Um den Inhalt der Warteschlange löschen
Doppelklicken Sie im Designer auf die Schaltfläche purgeMessage So erstellen Sie den Click -Ereignishandler in der Code-Editor .
Rufen Sie die Methode PurgehelpRequestQueue, und dann aktualisieren Sie den Inhalt des Steuerelements DataGridView.
Private Sub purgeMessages_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles purgeMessages.Click helpRequestQueue.Purge() DisplayMessages() EndSub
private void purgeMessages_Click(object sender, System.EventArgs e) { helpRequestQueue.Purge(); DisplayMessages();
}
Zum Testen der Anwendung
Drücken Sie [F5], um die Anwendung auszuführen.
Geben Sie Ihren Namen und eine kurze Nachricht.
Klicken Sie auf senden Nachricht in die Nachricht an die Warteschlange senden und die Anzeige zu aktualisieren.
Klicken Sie auf entfernen Nachrichten um alle Nachrichten in der Warteschlange zu löschen. Die Liste von Nachrichten ist nun leer.
Siehe auch
Aufgaben
SO WIRD'S GEMACHT: Erstellen von Warteschlangen
SO WIRD'S GEMACHT: Erstellen von Instanzen von MessageQueue-Komponenten
SO WIRD'S GEMACHT: Senden einfacher Meldungen
SO WIRD'S GEMACHT: Abrufen von Nachrichten