Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用.net mixpanel项目时尝试使用async/await调用方法时获取错误消息_C#_Asp.net_.net_Asynchronous_Async Await - Fatal编程技术网

C# 使用.net mixpanel项目时尝试使用async/await调用方法时获取错误消息

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

我正在使用此mixpanel.net项目:

页面上有一个使用wait调用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);
    }
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应用程序中的主线程的情况下调用这些方法?这是一个不同的问题,但在其他地方已经解决了很多次。