我正在使用这里的库:https ://github.com/joelpob/betfairng用于对新的必发 API 的并发 Web 请求。在实现运行所有内容的表单之前,我使用单元测试开发了相当多的代码。
以下代码来自给出的示例,对我来说,当我从单元测试运行它时会运行它,但当我从表单运行它时会失败(使用按钮单击)。
当我按下按钮运行它时,它会正确登录,但会在“ListCurrencyRates”上超时,这个请求将在单元测试中顺利通过。
BetfairClient Client = new BetfairClient(Exchange.UK, "appKey");
MarketListener MarketListener = MarketListener.Create(Client, BFHelpers.HorseRacePriceProjection(), 1);
Client.Login("certificate", "certpass", "betfairUsername", "betfairPassword");
//*** times out here!!!!
var currencyRates = Client.ListCurrencyRates("GBP").Result;
我没有收到错误或任何错误,我让它运行了 30 分钟,它没有抛出错误。当我暂停操作时,它只是说“这是线程从当前函数返回时将运行的下一条语句”。
有没有人对为什么会发生这种情况有任何建议?
任何帮助是极大的赞赏。
更新
在从单元测试调用 ListCurrencyRates 之前,以下线程正在运行。
Not Flagged 9420 1 Main Thread Main Thread System.Threading.WaitHandle.WaitAny() Normal
Not Flagged 12752 0 Worker Thread <No Name> Normal
Not Flagged 3792 5 Worker Thread <No Name> Normal
Not Flagged 7436 9 Worker Thread <No Name> Normal
Not Flagged 14396 0 Worker Thread <No Name> Normal
Not Flagged 14340 10 Worker Thread <No Name> Normal
Not Flagged 11268 11 Worker Thread <No Name> Normal
Not Flagged 14420 12 Worker Thread <No Name> System.Threading.Thread.Join() Normal
Not Flagged 14532 14 Worker Thread <No Name> System.Threading.WaitHandle.WaitAny() Normal
Not Flagged 13448 15 Worker Thread <No Name> Normal
Not Flagged 14564 17 Worker Thread <No Name> Normal
Not Flagged 14032 0 Worker Thread <No Name> Highest
Not Flagged 14356 16 Worker Thread Worker Thread BetfairNG.MarketListener.PollMarketBooks.AnonymousMethod__18 Normal
Not Flagged 14788 19 Worker Thread EventPumpThread System.Threading.Monitor.Wait() Highest
Not Flagged > 14800 20 Worker Thread TestRunnerThread Core.Trader.GetMarkets Normal
Not Flagged 15104 21 Worker Thread <No Name> System.Threading.WaitHandle.WaitAny() Normal
当我通过按下表单中的按钮运行它时,这些都在同一点运行:
Not Flagged 0 0 Unknown Thread [Thread Destroyed]
Not Flagged 15340 0 Worker Thread <No Name> Highest
Not Flagged 11716 3 Worker Thread <No Name> Normal
Not Flagged 14448 8 Worker Thread vshost.RunParkingWindow [Managed to Native Transition] Normal
Not Flagged 15344 7 Worker Thread <No Name> Normal
Not Flagged 14656 10 Worker Thread .NET SystemEvents [Managed to Native Transition] Normal
Not Flagged > 15016 11 Main Thread Main Thread Core.Trader.GetMarkets Normal
Not Flagged 14512 6 Worker Thread <No Name> Normal
Not Flagged 9272 12 Worker Thread Worker Thread BetfairNG.MarketListener.PollMarketBooks.AnonymousMethod__18 Normal
Not Flagged 3588 0 Worker Thread <No Name> Normal
Not Flagged 13656 14 Worker Thread <No Name> System.Threading.WaitHandle.WaitAny() Normal
显然有一些缺失,这可能是问题的根源吗?