相关疑难解决方法(0)

SubscribeOn和ObserveOn之间有什么区别

我刚刚发现SubscribeOn,这让我想知道我是否应该使用它而不是ObserveOn.谷歌把我带到这里这里,但都没有帮助我找到差异:它似乎非常微妙.

(在我的上下文中,我在非gui线程上发生了'事件',我需要在使用事件数据更新控件之前切换到gui线程).

.net system.reactive

70
推荐指数
3
解决办法
2万
查看次数

如何从rx subscribe回调异步函数?

我想在Rx订阅中回调一个异步函数.

就像这样:

public class Consumer
{
    private readonly Service _service = new Service();

    public ReplaySubject<string> Results = new ReplaySubject<string>();

    public void Trigger()
    {
        Observable.Timer(TimeSpan.FromMilliseconds(100)).Subscribe(async _ => await RunAsync());
    }

    public Task RunAsync()
    {
        return _service.DoAsync();
    }
}

public class Service
{
    public async Task<string> DoAsync()
    {
        return await Task.Run(() => Do());
    }

    private static string Do()
    {
        Thread.Sleep(TimeSpan.FromMilliseconds(200));
        throw new ArgumentException("invalid!");
        return "foobar";
    }
}

[Test]
public async Task Test()
{
    var sut = new Consumer();
    sut.Trigger();
    var result = …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous reactive-programming system.reactive

20
推荐指数
3
解决办法
1万
查看次数