Für jemanden zum Programm, die ist neu für IPC und Named Pipes, ich fand das folgende NuGet-Paket eine große Hilfe.
GitHub: Named Pipe Wrapper for .NET 4.0
Zum ersten installieren Sie das Paket verwenden:
PS> Install-Package NamedPipeWrapper
ein Beispiel Server dann (über den Link kopiert):
var server = new NamedPipeServer<SomeClass>("MyServerPipe");
server.ClientConnected += delegate(NamedPipeConnection<SomeClass> conn)
{
Console.WriteLine("Client {0} is now connected!", conn.Id);
conn.PushMessage(new SomeClass { Text: "Welcome!" });
};
server.ClientMessage += delegate(NamedPipeConnection<SomeClass> conn, SomeClass message)
{
Console.WriteLine("Client {0} says: {1}", conn.Id, message.Text);
};
server.Start();
Beispiel Auftraggeber:
var client = new NamedPipeClient<SomeClass>("MyServerPipe");
client.ServerMessage += delegate(NamedPipeConnection<SomeClass> conn, SomeClass message)
{
Console.WriteLine("Server says: {0}", message.Text);
};
client.Start();
Das Beste für mich ist, dass es im Gegensatz zur angenommenen Antwort mehrere Clients unterstützt, die mit einem einzelnen Server sprechen.
Einfach fragen, was Line: 16 sein sollte, weil es keine Definition ist für ‚Verzögerung‘ in System.Thread .Tasks –
@JordanTrainor Sorry, es ist in .Net 4.5. Sie können 'Thread.Sleep' verwenden –
Die Verwendung von Task in diesem Beispiel ist ziemlich düster. Es ist eine ausführliche Syntax und aufgrund der Planung möglicherweise nicht einmal in der Nähe von 1000ms. – Gusdor