Đối với những người là mới đối với IPC và Named Pipes, tôi đã tìm thấy gói NuGet sau đây là một trợ giúp tuyệt vời.
GitHub: Named Pipe Wrapper for .NET 4.0
Để sử dụng đầu tiên cài đặt gói:
PS> Install-Package NamedPipeWrapper
Sau đó, một máy chủ ví dụ (sao chép từ liên kết):
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();
Ví dụ khách hàng:
var client = new NamedPipeClient<SomeClass>("MyServerPipe");
client.ServerMessage += delegate(NamedPipeConnection<SomeClass> conn, SomeClass message)
{
Console.WriteLine("Server says: {0}", message.Text);
};
client.Start();
Điều tốt nhất về nó đối với tôi là không giống như câu trả lời được chấp nhận ở đây nó hỗ trợ nhiều khách hàng nói chuyện với một máy chủ duy nhất.
Nguồn
2015-11-07 11:24:18
Chỉ cần tự hỏi điều gì Line: 16 được coi là vì không có định nghĩa cho 'chậm trễ' trong System.Thread .Tasks –
@JordanTrainor Xin lỗi, nó nằm trong .Net 4.5. Bạn có thể sử dụng 'Thread.Sleep' –
Việc sử dụng Tác vụ trong ví dụ này khá dire. Đó là cú pháp chi tiết và do lập kế hoạch có thể không được thậm chí gần 1000ms. – Gusdor