【问题标题】:Getting error message when trying to call a method using async/await when using a .net mixpanel project在使用 .net mixpanel 项目时尝试使用 async/await 调用方法时收到错误消息
【发布时间】:2014-09-26 16:19:12
【问题描述】:

我正在使用这个 mixpanel .net 项目:

https://cndrsn.wordpress.com/2014/04/

在页面上有一个使用 await 调用 MixpanelClient.GetCurrentClient() 的示例,但这样做时出现此错误:

无法等待“Mixpanel.MixpanelClient”

这是我的方法:

    public async Task<string> TrackMixPanelLoggedIn(int userId)
    {
        string token = "mytoken!";
        MixpanelClient _client = await MixpanelClient.GetCurrentClient();
        TrackingEvent evt = new TrackingEvent("User logged in");
        evt.Properties = new TrackingEventProperties(token);
        evt.Properties.DistinctId = userId.ToString();
        _client.Track(evt);
    }

提前致谢

【问题讨论】:

  • 我假设MixpanelClient.GetCurrentClient()不是异步方法?
  • MixpanelClient.GetCurrentClient() 返回什么? async\await 不是使所有事物异步的神奇关键字。
  • 但是 MixPanelClient 的作者在他的示例中使用了它: MixpanelClient 主要的类是 MixpanelClient,它是一个可以让您跟踪事件和配置文件更新的小家伙。此外,如果发送元素失败,客户端将自动将其保存在本地,以便稍后自动将它们作为批处理发送。下面是如何获取它的一个实例: _client = await MixpanelClient.GetCurrentClient();此方法在第一次调用时是可等待的,客户端检查是否有任何未发送的元素,如果有则发送它们。示例来自:cndrsn.wordpress.com/2014/04
  • 那么他要么错了,要么正在使用不同版本(更新?)的库。
  • 错误信息告诉你该函数不可等待,就这么简单。

标签: c# asp.net .net asynchronous async-await


【解决方案1】:

看起来包的作者有不正确的文档(或者可能没有发布正确的代码?)

MixpanelClient 的元数据如下所示,如您所见,这里没有任何内容可以是 awaited。

public sealed class MixpanelClient
{
    public string UserAgent { get; set; }
    public static DateTime ConvertToDateTime(long unixDateTicks);
    public static string ConvertToMixpanelDate(DateTime dateTime);
    public void CreateAlias(string token, string originalId, string newId);
    public static MixpanelClient GetCurrentClient();
    public void SaveElement(MixpanelEntity element);
    public static long ToEpochTime(DateTime date);
    public void Track(MixpanelEntity element);
    public void TrySendLocalElements();
}

【讨论】:

  • 好的,感谢您解决这个问题。有什么方法可以在不阻塞我的 asp.net 应用程序中的主线程的情况下调用这些方法。
  • 这是一个不同的问题,但在其他地方已经解决了很多次。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多