protected internal override void OnMessageReceived(ConversationMessage message) { if (message is BrowseResponseMessage) { BrowseResponseMessage brMessage = (BrowseResponseMessage)message; if (browserId.Equals(brMessage.browserId)) { if (brMessage.Items != null) { breponseMessage = brMessage; itemListReceived?.Invoke(breponseMessage.path, breponseMessage.Items); } } } else if (message is ThumbnailResponseMessage) { ThumbnailResponseMessage trMessage = message as ThumbnailResponseMessage; thumbnailReceived?.Invoke(trMessage.ID, trMessage.Data); } }
private void Work_DoWork(object sender, DoWorkEventArgs e) { var work = sender as BackgroundWorker; var thumbRequestMessage = e.Argument as ThumbnailRequestMessage; if (work == null || thumbRequestMessage == null) { return; } while (!work.CancellationPending) { foreach (var itemID in thumbRequestMessage.itemIDList) { if (respondMessage.Items.Exists(item1 => itemID == item1.ID)) { var item = respondMessage.Items.Find(item2 => itemID == item2.ID); if (item.Type == ItemType.File) { byte[] bt = Env.Instance.GetThumbnailStream(respondMessage.path, item); if (bt != null) { ThumbnailResponseMessage thumbnailReponseMessage = new ThumbnailResponseMessage() { ID = item.ID, Name = item.Name, Length = bt.Length, Data = bt }; PostAsSendable(thumbnailReponseMessage); } ; } } } work.CancelAsync(); } }