dla kogoś, kto jest nowy w IPC i Named Pipes, znalazłem następujący pakiet NuGet, który jest świetną pomocą.
GitHub: Named Pipe Wrapper for .NET 4.0
Aby użyć najpierw zainstalować pakiet:
PS> Install-Package NamedPipeWrapper
Następnie serwer Przykład (skopiowany z link):
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();
przykład klient:
var client = new NamedPipeClient<SomeClass>("MyServerPipe");
client.ServerMessage += delegate(NamedPipeConnection<SomeClass> conn, SomeClass message)
{
Console.WriteLine("Server says: {0}", message.Text);
};
client.Start();
Najlepsze dla mnie jest to, że w przeciwieństwie do zaakceptowanej odpowiedzi obsługuje wielu klientów rozmawiających z jednym serwerem.
prostu zastanawiasz się, co Line: 16 ma być, bo nie ma definicji „opóźnienie” w System.Thread .Tasks –
@JordanTrainor Przepraszamy, jest w .Net 4.5. Możesz użyć 'Thread.Sleep' –
Użycie Zadania w tym przykładzie jest bardzo poważne. Jest to pełna składnia i ze względu na harmonogram może nie być nawet blisko 1000 ms. – Gusdor