【发布时间】:2019-04-08 15:19:09
【问题描述】:
我希望下面的程序在您点击z 之前回显任何按键,但是当您点击z 时它不会终止,并且只会回显每隔一个按键。我做错了什么?
using System.Reactive;
using System.Reactive.Linq;
public class Printer : IObserver<char>
{
public void OnNext(char x)
{
Console.WriteLine(x);
}
public void OnError(Exception x)
{
}
public void OnCompleted()
{
}
}
class Program
{
static IObservable<char> keys = Observable.Defer(() =>Observable.Start(() =>Console.ReadKey().KeyChar)).Repeat(); //https://stackoverflow.com/questions/10675451/iobservable-of-keys-pressed
public static int Main()
{
IObserver<char> x = new Printer();
keys.Subscribe(x);
keys.Where(b => b == 'z').Wait();
return 0;
}
}
【问题讨论】:
-
您正在创建多个订阅。如果你想分享按键,你需要发布 observable。
标签: c# system.reactive