У меня есть класс,
public class Test
{
public int Calc();
}
который требует, чтобы все вызовы Calc выполнялись в том же потоке, что и тот, в котором был создан Test. Мне нужно создать Test один раз (дорогая операция) и несколько раз вызвать Calc.
Я хотел бы иметь оболочку, которая позволит мне асинхронно вызывать Calc:
public class TestWrapper
{
private Test _test;
public IObservable<int> Calc();
}
Один из способов сделать это — создать BackgroundWorker или Thread и использовать его в качестве гарантии того, что все операции над Test выполняются в одном потоке. Для простоты мы можем предположить, что все вызовы Calc() будут выполняться последовательно, поэтому не нужно беспокоиться об очередях.
Есть ли более элегантный способ RX сделать это?