2014-09-26 53 views
0

我用這mixpanel .NET項目.NET mixpanel項目時/等待:收到錯誤消息嘗試使用異步調用方法時使用

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

在頁面上有呼叫的例子在MixpanelClient.GetCurrentClient()使用的await但我當這樣做收到此錯誤:

不能等待 '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); 
    } 

在此先感謝

+2

我假設'MixpanelClient.GetCurrentClient()'不是一個異步方法嗎? – DavidG 2014-09-26 08:01:05

+0

'MixpanelClient.GetCurrentClient()'返回什麼? 'async \ await'不是使所有事情都異步的神奇關鍵字。 – 2014-09-26 08:08:42

+0

但是MixPanelClient的作者在他的例子中使用它: MixpanelClient 主要的類是MixpanelClient,它是允許你跟蹤事件和配置文件更新的小傢伙。此外,如果發送元素失敗,客戶端將自動將其保存到本地,以便稍後自動將其作爲批量發送。如何檢索它的一個實例: 這種方法在第一次調用時是可以等待的,客戶端會檢查是否有任何未發送的元素,如果是,則發送它們。 示例來自:https://cndrsn.wordpress.com/2014/04/ – 2014-09-26 08:10:21

回答

1

它看起來像包的作者有不正確的文檔(或者還沒有公佈正確的代碼?)

MixpanelClient元數據是這樣的,你可以看到,這裏沒有任何東西可以是await 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(); 
} 
+0

好的謝謝你清理這個。有沒有什麼辦法可以調用這些方法而不會阻塞我的asp.net應用程序中的主線程。 – 2014-09-26 08:30:57

+0

這是一個不同的問題,但在別處已經解決了很多次。 – DavidG 2014-09-26 08:32:16

相關問題