OpenTween.ListManage.LoadUserIconAsync C# (CSharp) Method

LoadUserIconAsync() private method

private LoadUserIconAsync ( Uri imageUri, long userId ) : System.Threading.Tasks.Task
imageUri System.Uri
userId long
return System.Threading.Tasks.Task
        private async Task LoadUserIconAsync(Uri imageUri, long userId)
        {
            var oldImage = this.UserIcon.Image;
            this.UserIcon.Image = null;
            oldImage?.Dispose();

            await this.UserIcon.SetImageFromTask(async () =>
            {
                var uri = imageUri.AbsoluteUri.Replace("_normal", "_bigger");

                using (var imageStream = await Networking.Http.GetStreamAsync(uri))
                {
                    var image = await MemoryImage.CopyFromStreamAsync(imageStream);

                    // 画像の読み込み中に選択中のユーザーが変化していたらキャンセルとして扱う
                    var selectedUser = (UserInfo)this.UserList.SelectedItem;
                    if (selectedUser.Id != userId)
                    {
                        image.Dispose();
                        throw new OperationCanceledException();
                    }

                    return image;
                }
            });
        }