C# 使用.net mixpanel项目时尝试使用async/await调用方法时获取错误消息
我正在使用此mixpanel.net项目: 页面上有一个使用wait调用MixpanelClient.GetCurrentClient()的示例,但执行此操作时出现以下错误: 无法等待“Mixpanel.MixpanelClient” 以下是我的方法:C# 使用.net mixpanel项目时尝试使用async/await调用方法时获取错误消息,c#,asp.net,.net,asynchronous,async-await,C#,Asp.net,.net,Asynchronous,Async Await,我正在使用此mixpanel.net项目: 页面上有一个使用wait调用MixpanelClient.GetCurrentClient()的示例,但执行此操作时出现以下错误: 无法等待“Mixpanel.MixpanelClient” 以下是我的方法: public async Task<string> TrackMixPanelLoggedIn(int userId) { string token = "mytoken!"; Mix
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);
}
public异步任务TrackMixPanelLoggedIn(int userId)
{
string token=“mytoken!”;
MixpanelClient _client=等待MixpanelClient.GetCurrentClient();
TrackingEvent evt=新的TrackingEvent(“用户登录”);
evt.Properties=新的TrackingEventProperties(令牌);
evt.Properties.differentid=userId.ToString();
_客户跟踪(evt);
}
提前感谢看起来包的作者有不正确的文档(或者可能没有发布正确的代码?)
MixpanelClient
的元数据如下所示,正如您所看到的,这里没有可以wait
ed的内容
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();
}
我假设
MixpanelClient.GetCurrentClient()
不是异步方法?MixpanelClient.GetCurrentClient()返回什么async\await
并不是使所有事情都异步的神奇关键字。但是MixPanelClient的作者在他的示例中使用了它:MixPanelClient主要类是MixPanelClient,正是这个小家伙允许您跟踪事件和配置文件更新。此外,如果发送元素失败,客户端将自动将其保存在本地,以便稍后自动将其作为批发送。下面是如何检索它的实例:_client=await MixpanelClient.GetCurrentClient();这个方法是可以等待的,因为在第一次调用时,客户机检查是否有任何未发送的元素,如果有,则发送它们。示例来源:那么他要么错了,要么正在使用库的不同版本(较新?)。错误消息告诉您该函数不可等待,就这么简单。好的,谢谢您澄清这一点。有没有什么方法可以在不阻塞asp.net应用程序中的主线程的情况下调用这些方法?这是一个不同的问题,但在其他地方已经解决了很多次。