У меня есть класс,
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 сделать это?