问题很简单。我从网站上找到这段代码http://rxwiki.wikidot.com/101samples#toc0在这里
public static async void StartBackgroundWork()
{
Console.WriteLine("Shows use of Start to start on a background thread:");
var o = Observable.Start(() =>
{
//This starts on a background thread.
Console.WriteLine("From background thread. Does not block main thread.");
Console.WriteLine("Calculating...");
Thread.Sleep(1000);
Console.WriteLine("Background work completed.");
});
**await o.FirstAsync();** // subscribe and wait for completion of background operation. If you remove await, the main thread will complete first.
Console.WriteLine("Main thread completed.");
}
但当我把它粘贴到我的项目中时,会出现一个错误,上面写着"无法等待系统.IObservable"。它怎么了?如何运行此代码?鉴于我对Rx和C#不太熟悉,如果这个问题太愚蠢,请原谅我。
您可能链接到的是.NET 4.0的Rx DLL,而不是.NET 4.5的。
如果您从Nuget获取软件包,请尝试使用Nuget控制台中的命令"更新软件包–重新安装"重新安装软件包。有关详细信息,请参阅:http://docs.nuget.org/consume/reinstalling-packages
您可以通过转到项目的Reference/System.Reactive.Core的属性选项卡来检查当前使用的版本,并检查"Path"属性。它应该包含"net45",如下所示:
+++\packages\Rx Core.2.2.5\lib\net45\SystemReactive.Core.dll