使用C#/ .NET(Xamarin / Mono,真的).
我有一个方法(A)的类接受它写入的流,
我有另一个类,方法(B)接受一个流来读取.
我希望有一个传递给(A)和(B)的流,这样就可以了
(A)写入流,可以通过(B)读取数据.
是否有这样的野兽不使用OS管道?
解决方法
我会用
BlockingCollection.例如
BlockingCollection<int> bc = new BlockingCollection<int>(); Task.Run(() => new Reader(bc).DoWork()); Task.Run(() => new Writer(bc).DoWork());
public class Reader { BlockingCollection<int> _Pipe = null; public Reader(BlockingCollection<int> pipe) { _Pipe = pipe; } public void DoWork() { foreach(var i in _Pipe.GetConsumingEnumerable()) { Console.WriteLine(i); } Console.WriteLine("END"); } } public class Writer { BlockingCollection<int> _Pipe = null; public Writer(BlockingCollection<int> pipe) { _Pipe = pipe; } public void DoWork() { for (int i = 0; i < 50; i++) { _Pipe.Add(i); Thread.Sleep(100); } _Pipe.CompleteAdding(); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。