public async void OnTick(IWeiboAccessToken at) { if (_tick++%57 != 0) return; var resp = await WeiboClient.suggestions_statuses_hot_async(at.get(), 20, true, 1, _type); if(++_type == hot_status_type.count) _type = hot_status_type.musement; if (resp.Failed() || resp.Value.Length == 0) return; var queue = new PriorityQueue<long, Status>(); foreach(var s in resp.Value) { queue.Enqueue(EvalMark(s),s); } while (queue.Size > 5) queue.Dequeue(); while(!queue.IsEmpty) { var s = queue.Dequeue(); var ws = new WeiboStatus(); ws.assign_sina(s); await DispatcherHelper.UIDispatcher.BeginInvoke(DispatcherPriority.SystemIdle, (Action) (() => { if(statuses.Count > 10) statuses.RemoveAt(0); statuses.Add(ws); })); } }
public Recomendations() { _type = (hot_status_type) _random.Next(1, (int) hot_status_type.count); _statuses = new List<WeiboStatus>(); }